전체보기(195)
-
PMD / CheckStyle / Findbugs
정적 분석 정적 분석은 소프트웨어를 분석하는 방법의 하나로 소프트웨어를 실행하지 않고 코드 레벨에서 분석하는 방법입니다. PMD란 PMD의 개념 PMD는 Java의 잘못된 코드를 검사해주는 정적 소스 코드 분석 도구입니다. PMD에는 기본 제공 규칙 세트가 포함되어 있으며 사용자 지정 규칙을 작성할 수 있습니다. 그리고 PMD는 단독 형태로도 사용할 수 있으며, 이클립스나 IntelliJ와 같은 IDE에 플러그인 형태로 배포되어 사용할 수도 있습니다. PMD 점검 기준 기준 설명 표준 코드 기준(Compliance with coding standards) - 명명 규칙: 클래스, 메소드, 파라미터, 변수 이름 - 클래스 및 메서드 길이 - 주석 및 JavaDocs의 존재 및 서식 코드 안티 패턴(Codi..
2020.03.27 -
MyBatis
MyBatis란 MyBatis의 개념 MyBatis는 Java 오브젝트와 SQL문 사이의 매핑 기능을 지원해 Java의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있도록 도와주는 개발 프레임워크입니다. JDBC를 통해 데이터베이스에 액세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거합니다. MyBatis의 특징 SQL 쿼리들을 한 파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있음 복잡한 쿼리나 다이나믹한 쿼리에 강함 데이터 조회 결과를 사용자 정의 DTO, MAP 등으로 맵핑하여 사용 가능 복잡한 JDBC 코드를 걷어내어 깔끔한 코드를 유지할 수 있음 접근하기 쉽고 간단한 퍼시턴스 프레임워크 MyBa..
2020.03.26 -
DBCP
DBCP란 DBCP의 개념 DBCP란 DataBase Connection Pool의 약자로 DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 합니다. 일반적으로 JDBC를 이용한다면 아래와 같은 순서로 DB에 접속합니다. DB 접속을 위한 JDBC 드라이버 로드 getConnection 메소드로부터 Connection 객체를 얻음 쿼리 수행을 위한 PreparedStatement 객체 생성 executeQuery를 실행해서 결과를 받아옴 처리가 완료되면 사용된 리소스들을 close하여 반환 이처럼 JDBC는 DB에 연결할 때마다 드라이버를 로드하고 Connection 객체를 얻는 작업을 반복합니다. 이에 반해 DBCP는 WAS 실행시, 일정량의 Connection 객체를 생성하고 Pool이라는 공간에 저..
2020.03.26 -
Git Flow
Git Repository 구성 Upstream Repository: 개발자들이 공유하는 저장소로 최신 소스코드가 저장되어 있는 원격 저장소 Origin Repository: Upstream Repository를 Fork한 원격 개인 저장소 Local Repository: 내 컴퓨터에 저장되어 있는 개인 저장소 위 그림의 work flow Local에서 작업을 완료한 후, 작업 브랜치를 Origin에 push Origin에 push한 브랜치를 Upstream로 merge하는 Pull Request를 생성한 후 Merge 다시 새로운 작업을 할 때, Local에서 Upstream을 pull Git Flow 고수준으로 저장소를 관리하기 위한 브랜칭 기법 Git Flow의 브랜치 종류 Master: 제품으로 ..
2020.03.24 -
로드 밸런서
로드 밸런싱의 개념 로드 밸런싱이란 하나의 인터넷 서비스가 발생하는 트래픽이 많을 때, 여러 대의 서버가 각 서버의 로드율 증가, 부하량, 속도 저하 등을 고려하여 적절하게 분산처리 해주는 것을 의미합니다. 로드 밸런싱의 주요 기능 NAT 사설 IP 주소를 공인 IP 주소로 바꾸는 통신망의 주소 변조기 Tunneling 인터넷 상에서 눈에 보이지 않는 통로를 만들어 통신할 수 있게 하는 개념으로 데이터를 캡슐화해서 연결된 상호 간에만 캡슐화된 패킷을 구별해 캡슐화를 해제할 수 있음 DSR(Dynamic Source Routing Protocol) 서버에서 클라이언트로 되돌아가는 경우 목적지 주소를 클라이언트의 IP 주소로 설정해 네트워크 스위치를 거치지 않고 바로 클라이언트를 찾아가는 개념 로드 밸런서의..
2020.03.20 -
Jenkins
Jenkins란 Jenkis란 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴입니다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유 영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해줍니다. 그리고 프로젝트 빌드, 테스트 실행 배포 등의 통합을 자동화하는 기능도 포함하고 있습니다. Jenkins의 이점 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출 정적 코드 분석에 의한 코딩 규약 준수여부 체크 결합 테스트 환경에 대한 배포작업 각종 배치 작업의 간략화: 과거에는 CLI(Command Line Interface)로 실행되던 작업들이 Jenkins덕분에 웹 인터페이스로 쉽게 이용할 수 있게 됨 Build 자동화의 확립: J..
2020.03.19