전체 글(194)
-
Wrapper Class
Wrapper Class란 Wrapper Class의 개념 Java는 데이터를 클래스나 객체 외에 int, double, char과 같은 Primitive Type을 가지고 있습니다. 따라서 Java는 Primitive Type과 객체 인스턴스 같은 두 가지 타입의 데이터를 가지고 있습니다. 그러나 어떤 상황에서는 기본형 타입을 객체로 사용해야 하는 경우가 있습니다. 이러한 경우에 기본형 타입 값을 객체로 포장할 수 있습니다. 이 때 사용하는 클래스가 Wrapper Class입니다. Wrapper Class는 특정 기본형 타입을 나타냅니다. 예를 들어, Integer Class는 정수 값을 나타내고 Double Class는 실수 값을 나타냅니다. 각 Wrapper Class로부터 생성된 객체는 하나의 P..
2020.03.28 -
Spring DI 방법
Field Injection 가장 간단한 방법으로 Bean으로 등록된 객체를 사용하고자 하는 클래스에 Field로 선언한 뒤 @Autowired 키워드를 붙여주면 자동으로 주입됩니다. @Service public class BoardService { @Autowired private BoardDao boardDao; public void doSomething() { // .... } }동일한 Class의 Bean이 여러 개 전재하는 경우에는 아래와 같이 @Qualifier(“myBoardDao”)를 붙여주어 Bean 이름을 지정해 주입 받는 것이 가능합니다. @Service public class BoardService { @Autowired @Qualifier("myBoardDao") private B..
2020.03.27 -
IOC와 DI
컨테이너란 컨테이너는 보통 객체의 생명주기를 관리하며, 생성된 객체들에게 추가적인 기능을 제공하도록 하는 것을 의미합니다. 다시 말해, 컨테이너란 개발자가 작성한 코드의 처리과정을 위임받은 독립적인 존재입니다. 컨테이너는 적절한 설정만 되어 있다면 개발자가 작성한 코드를 스스로 참조한 뒤 알아서 객체의 생성과 소멸을 제어합니다. IOC란 일반적인 프로그래밍은 main메소드에서 시작해서 개발자가 미리 정한 순서를 따라 객체가 생성되고 실행됩니다. 그러나 서블릿의 경우를 보면, 개발자가 서블릿을 개발해서 서버에 배포할 수는 있지만 직접 제어할 수 있는 방법은 없습니다. 대신 서블릿에 대한 제어 권한을 가진 컨테이너가 적절한 시점에 서블릿 클래스의 객체를 만들고 그 안의 메소드를 호출합니다. 이처럼 개발자가 ..
2020.03.27 -
Spring 설정을 XML에서 Java Config로 바꾸기
Spring 설정을 XML에서 Java Config로 하는 이유 수정 시 재배포는 XML이든 Java Config든 같음 XML은 문서가 길어지면 가독성이 좋지 않음 XML은 단지 문서일 뿐이므로 휴먼 에러를 인지하는 타이밍이 컴파일 단계에서 알아 차릴 수 있는 Java Config보다 느림 Annotation 메타 정보 활용 Annotation을 이용한 프로그래밍 방식이란, Java 리플렉션 API를 이용해 Annotation의 메타 정보를 조회하고, Annotation 내에 설정된 값을 가져와 작업을 수행합니다. Anotation은 Spring이 참조하는 메타 정보로 사용되기 때문에 유리한 점이 많습니다. Spring 설정 파일을 따로 관리할 필요가 없음 XML보다 명료함(XML은 설정이 많아지면 파..
2020.03.27 -
Unit Test
UnitTest란 UnitTest의 개념 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다. 즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말합니다. 이를 통해 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단 시간 내에 이를 파악하고 바로잡을 수 있도록 해줍니다. Unit Test를 만드는 이유 첫 번째는 프로그램이 크고, 메모리가 많이 들고, 다른 리소스(DB 등)이 필요한 경우 로컬 환경에서 쉽게 코드를 실행시켜 보기 어렵기 때문입니다. 그래서 개발자들은 Unit Test를 통해 빠르게 자신의 코드가 정상적으로 작동하는지 확인할 수 있습니다. 두 번째는 dependency가 있는 다른 클래스들에서 버그가 나는 것을 방지하기 위함입니다. 다..
2020.03.27 -
PMD / CheckStyle / Findbugs
정적 분석 정적 분석은 소프트웨어를 분석하는 방법의 하나로 소프트웨어를 실행하지 않고 코드 레벨에서 분석하는 방법입니다. PMD란 PMD의 개념 PMD는 Java의 잘못된 코드를 검사해주는 정적 소스 코드 분석 도구입니다. PMD에는 기본 제공 규칙 세트가 포함되어 있으며 사용자 지정 규칙을 작성할 수 있습니다. 그리고 PMD는 단독 형태로도 사용할 수 있으며, 이클립스나 IntelliJ와 같은 IDE에 플러그인 형태로 배포되어 사용할 수도 있습니다. PMD 점검 기준 기준 설명 표준 코드 기준(Compliance with coding standards) - 명명 규칙: 클래스, 메소드, 파라미터, 변수 이름 - 클래스 및 메서드 길이 - 주석 및 JavaDocs의 존재 및 서식 코드 안티 패턴(Codi..
2020.03.27