목록분류 전체보기 (220)
코딩마을방범대
SonarQube 에 GitLab&Local 연결해서 사용하기소나큐브란코드 품질 분석: 소나큐브는 다양한 프로그래밍 언어(Java, C#, JavaScript 등)의 코드를 분석하여 버그, 취약점, 코드 스멜 등을 찾아냅니다.자동화 및 통합: 소나큐브는 CI/CD 파이프라인에sweet-rain-kim.tistory.com 위 포스트를 통해 소나큐브를 연결한 후 분석이 완료되었다면 아래와 같은 화면을 볼 수 있다. 이번 포스트에서는 발견된 결과들을 바탕으로 문제점들을 분석해볼 것이다. 버그버그는 왠만하면 컴파일 과정 또는 작성 중 발견되기 때문에 개수가 많지는 않다. 1. Use try-with-resources or close this "Stream" in a "finally" cl..
코드 분석을 하다보면 Serializable라는 인터페이스를 마주칠 수 있다.직렬화라는 것은 많이 들어봤지만 정확한 개념을 모르고 있었는데 이 참에 포스팅을 해볼 것이다! 직렬화(Serialization) 란? 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술*역직렬화(Deserialization): 바이트로 변환된 데이터를 다시 객체로 변환하는 기술JVM(Java Virtual Machine)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술객체 저장은 ObjectOutputStream 클래스를 사용객체 읽기는 ObjectInputStream 클래스를 사용 Serializable 인터페이스 구현 1. s..
try-with-resources 란?AutoCloseable 인터페이스를 사용하는 자원을 자동으로 닫아주는 시스템자바 7부터 지원하는 기능 AutoCloseable 인터페이스를 구현한 자원AutoCloseable 인터페이스에는 close() 메소드가 정의되어 있으며, try-with-resources 구문이 종료될 때 자동으로 이 메소드가 호출된다. 파일 입출력 관련 클래스 FileInputStream, FileOutputStream, FileReader, FileWriter 등 데이터베이스 관련 클래스 Connection, Statement, ResultSet 등 네트워크 관련 클래스 Socket, ServerSocket, DatagramSocket 등 기타 리소스 관리 클래스 InputStream,..
소나큐브란코드 품질 분석: 소나큐브는 다양한 프로그래밍 언어(Java, C#, JavaScript 등)의 코드를 분석하여 버그, 취약점, 코드 스멜 등을 찾아냅니다.자동화 및 통합: 소나큐브는 CI/CD 파이프라인에 통합되어 자동으로 코드 품질을 검사할 수 있습니다.보안 취약점 탐지: OWASP Top 10 등 보안 규칙을 기반으로 보안 취약점을 찾아냅니다.커스텀 룰셋 지원: 사용자 정의 규칙을 추가하여 특정 요구사항에 맞는 코드 검사를 수행할 수 있습니다.웹 기반 대시보드: 웹 브라우저에서 코드 분석 결과를 확인하고 관리할 수 있습니다.정적 코드 분석: 실제 실행 없이 코드 자체를 분석하여 문제점을 발견할 수 있습니다. 코드스멜이란?프로그래밍 코드에서 문제를 일으킬 가능성이 있는 프로그램 소스 코드의 ..
인스턴스를 사용하다보면 어느새 할당된 디스크 용량을 전부 사용한 경우가 오게된다. 위와 같이 92% 사용량을 보고 디스크 용량을 확인해보면 아래와 같이 used가 거의 꽉 찬 것을 알 수 있다. 오늘은 기존 인스턴스의 볼륨을 확장하는 방법을 알아볼 것이다!우선 인스턴스에 할당된 볼륨의 크기를 증가시킨 뒤, 리눅스 시스템에 반영해주기만 하면 된다. 1단계. EBS 볼륨 확장 1. 인스턴스 목록에서 용량 증가시킬 인스턴스 클릭 AWS 콘솔 페이지에 로그인한 후 인스턴스 목록에서 용량을 증가시킬 인스턴스를 선택한다.이후 스토리지 탭을 선택하여 볼륨ID를 선택한다. 2. 볼륨 수정 선택 그럼 해당 볼륨 검색 페이지로 넘어가게 되는데, 여기서 체크박스 선택 후 볼륨 수정 버튼을 클릭해준다. ..
이전 포스터에서 Replication의 개념을 설명 했고, 이 후 실제로 MySQL에 적용하는 방법을 알아볼 것이다. 데이터베이스 리플리케이션(Replication)데이터베이스 리플리케이션(Replication) 실시간 복제본 데이터베이스 서버를 운용하는 것기준이 되는 서버를 마스터 서버라 하고, 마스터 서버와 동일한 내용을 갖는 또 다른 서버를 ‘리플sweet-rain-kim.tistory.com Replication이란? 복제(Replication)는 1개 이상의 레플리카(replica) 저장소가 소스 저장소와 동기화를 자동으로 유지하는 과정이다.(기존의 일반적으로 사용하였던 master-slave라는 용어를 source-replica로 대체하는 추세이다.) MySQL Rep..
도메인 주도 설계(DDD; Domain Driven Design)비즈니스 도메인 별로 나누어 설계하는 방식의존성 최소화(Loosly coupling=느슨한 결합), 응집성 최대화(High cohesion=높은 응집력)이 목표Strategic Design(개념 설계)과 Tactical Design(으로 나눌 수 있음도메인(Domain)사전적인 의미는 영역, 집합DDD의 도메인은 비즈니스 도메인을 뜻하며, 유사한 업무의 집합을 말함(MPRS-마케팅,구매,연구,영업) 개념 설계(Strategic Design) 컨텍스트(Context) 를 기준으로 설계하는 것 용어설명Domain전체 설계Subdomain구성하는 부분 집합 (안방, 창고, 화장실 등)Domain Model실제 Subdomain의 구..
바이너리 로그 DDL(Create, Drop, Alter)과 DML(Insert, Update, Delete)을 통해 데이터베이스, 오브젝트, 데이터에 생성,수정,업데이트를 했을 시 그 변화된 이벤트를 기록하는 이진 파일이 있는데 이것을 바이너리 로그라고 한다.(show나 select등 조회 문법은 제외된다) 용도1. 복제 구성에서 사용바이너리 로그는 마스터라는 서버에서 생성되고, 슬레이브 서버는 마스터 서버에 접속하여 이 바이너리 로그를 읽어와서 똑같이 그 이벤트를 실행시켜 마스터서버와 슬레이브 서버를 동일하게 만듭니다. 2. 특정 시점 복구에 사용데이터베이스를 사용하다보면 데이터 삭제나 데이터베이스가 어떤 이유로 장애나 크래쉬가 발생할 시 복구를 해야할 때가 있다. 이때 특정 시점 시간으로 돌아갈..