분류 전체보기(137)
-
프로그래머스 GROUP BY 2번 문제 : 동명 동물 수 찾기
https://programmers.co.kr/learn/courses/30/lessons/59041 코딩테스트 연습 - 동명 동물 수 찾기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, S..
2021.08.13 -
프로그래머스 GROUP BY 1번 문제 : 고양이와 개는 몇 마리 있을까
https://programmers.co.kr/learn/courses/30/lessons/59040 코딩테스트 연습 - 고양이와 개는 몇 마리 있을까 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, N..
2021.08.13 -
프로그래머스 IS NULL 4번 문제 : NULL 처리하기
https://programmers.co.kr/learn/courses/30/lessons/59410 코딩테스트 연습 - NULL 처리하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON..
2021.08.13 -
[Spring5입문] 프록시 생성 방식
- 스프링은 AOP를 위한 프록시 객체를 생성할 때, 실제 생성할 빈 객체가 인터페이스를 상속하면 인터페이스를 이용해서 프록시를 생성한다. => 따라서 아래 코드처럼 빈의 실제 타입이 RecCalculator라고 하더라도, 빈 객체는 Calculator 인터페이스를 상속받은 프록시 타입이 된다. //설정 클래스 @Bean public Calculator calculator(){ return new RecCalculator(); } //자바 코드 RecCalculator cal = ctx.getBean("calculator", RecCalculator.class); //calculator 빈의 실제 타입은 Calculator을 상속한 프록시 타입이므로 //RecCalculator로 타입 변환을 할 수 없기..
2021.08.11 -
[Spring5입문] 스프링 AOP
- 스프링 AOP를 이용하는 방법은 다음과 같다. Aspect로 사용할 클래스에 @Aspect 애노테이션을 붙인다. @Pointcut 애노테이션으로 공통 기능을 적용할 Pointcut을 정의한다. 공통 기능을 구현한 메서드에 @Around 애노테이션을 적용한다. - 개발자는 공통 기능을 제공하는 Aspect 구현 클래스를 만들고 자바 설정을 이용해서 Aspect를 어디에 적용할지 설정하면 된다. - 프록시는 스프링 프레임워크가 알아서 만들어준다. @Aspect public class ExeTimeAspect { //@Pointcut은 공통 기능을 적용할 대상을 설정한다. @Pointcut("execution(public * chap07..*(..))") private void publicTarget(){..
2021.08.11 -
[자바 객체 지향] 객체 지향 설계 5원칙 : ISP, DIP
1. ISP - 인터페이스 분리 원칙 => 다음과 같이 인터페이스로 역할에 따라 인터페이스로 나누는 것 - SRP와 ISP는 같은 문제에 대한 두 가지 다른 해결책이다. => 하지만 특별한 경우가 아니라면 단일 책임 원칙을 적용하는 것이 더 좋은 해결책이다. - 인터페이스 최소주의 원칙 : 인터페이스를 통해 메서드를 외부에 제공할 때는 최소한의 메서드만 제공하라는 것 => 상속의 혜택을 제대로 누리기 위해, 상위 클래스는 풍성할수록 좋고, 인터페이스는 작을수록 좋다. 2. DIP - 의존 역전 원칙 - 위와 같이 자동차와 스노우타이어 사이에 의존관계가 있다고 하자. => 하지만 자동차의 수명이 스노우타이어의 수명보다 길고, 이 경우, 자동차의 타이어를 일반 타이어로 교체할 때, 문제가 생긴다. => 따라..
2021.08.09