moonscode 236

문제 // 자료구조 // 리스트(List) // 뒤에서 K번째 노드구하기 // toJava

/** * [뒤에서 k번째 원소 구하기] * 단방향 연결리스트가 주어졌을 때 뒤에서 k 번째 원소를 찾는 알고리즘을 구현 * * [풀이] * => 전체길이를 캐싱하고 있는가 ? * => 전체길이를 구하고 재차 뒤에서 K번째를 구함 * */ public class Q02 { public static void main(String[] args) { } /* Node */ static class Node { Node next; int data; Node(int data) { this.data = data; } } /* getNodeFromRear */ static Node getNodeFromRear(Node head, int k) { if(head == null) return null; Node node =..

문제 // 자료구조 //리스트(List) // 중복제거 // toJava

/** * [중복없애기] * 정렬되어 있지 않은 연결리스트가 주어졌을 때 이 리스트에서 중복되는 원소를 제거하는 코드를 작성 * 임시버퍼를 사용하지 않고 만들수 있을까? * * [풀이] * => 리스트의 내부구현인가 ? 외부구현인가 ? * => 외부구현일때, 주어진 리스트를 사용해도 되나 ? * => List Iterater 활용 * => Set 으로 데이터 임시저장 * */ public class Q01 { public static void main(String[] args) { List list = new LinkedList(); list.add(1); list.add(1); list.add(2); list.add(2); list.add(3); list.add(3); deleteDuplicationA..

학습 // Spring // AOP // 프로퍼티(Property)

업데이트 :: 2018.08.08 프로퍼티빈정의시 프로퍼티빈구현시 프로퍼티프로퍼티각종 설정값이 소스코드 안에 기재된 예제@Bean(destroyMethod="close") DataSource dataSource() { BasicDataSource dataSource = new BasicDataSource(); dataSource.setDriverClassName("org.postgresql.Driver"); dataSource.setUrl("jdbc:postgresql://localhost:5432/demo"); dataSource.setUsername("demo"); dataSource.setPassword("pass"); dataSource.setDefaultAutoCommit(false); retu..

Spring/DI & AOP 2018.08.08

학습 // Spring // AOP // 데이터바인딩(DataBinding) & 형변환(Casting)

업데이트 :: 2018.08.08 데이터바인딩과 형변환String 데이터바인딩스프링의 형변환빈을 조작하거나 래핑형변환필드값의 표현형식 포매팅ConversionService포매팅용 애너테이션커스터마이징형변환방식필드포매팅방식데이터바인딩과 형변환데이터바인딩 (DataBinding)자바 객체의 프로퍼티에서 외부에서 입력된 값을 설정하는 과정자바빈즈 (JavaBeans)데이터바인딩이나 프로퍼티관점에서 다뤄지는 객체요청 파라미터 값을 담기 위한 자바빈즈public class EmployeeForm { private String name; private Integer joinedYear; // skip } 설정자 메서드(setter)를 통한 프로퍼티 설정EmployeeForm form = new EmployeeFor..

Spring/DI & AOP 2018.08.08

학습 // Spring // AOP // Advice

업데이트 :: 2018.08.07 Advice 정의 (자바기반)BeforeAfter ReturningAfter ThrowingAfterAroundAdvice 정의 (Xml기반)포인트컷 표현식메서드명으로 조인포인트 선택타입으로 조인포인트 선택그외 방법네임드 포인트컷 활용Advice 대상객체와 인수정보 가져오기Advice 정의 (자바기반)Before@Aspect @Component public class MethodStartLoggingAspect { @Before("execution(* *..*ServiceImpl.*(..))") public void startLog(JoinPoint jp) { System.out.println("메서드시작 : " + jp.getSignature()); } } 메소드 시작..

Spring/DI & AOP 2018.08.08

학습 // Spring // AOP (Aspect Oriented Programming)

업데이트 :: 2018.08.07 AOP 개념황단관심사개념종류AOP 용어Advice 유형Weaving 방식Spring AOP 개념스프링 AOP 기능트랜잭션관리인가캐싱비동기처리재처리AOP 개념AOP (Aspect Oriented Programming ) 이란 여러 클래스에 흩어져 있는황단관심사를 중심으로 설계와 구현을 하는 프로그래밍 기법즉, 비즈니스 로직을 제외한 다른 부분은 공통적으로 관리해주기 때문에개발자는 비즈니스 로직에 집중할 수 있게됩니다.황단관심사개념황단관심사크로스커팅 관심사(cross-cutting concerns)비즈니스 로직과는 다소 거리가 있으나 여러 모듈에 걸쳐 공통적 반복적으로 필요로 하는 것횡단 관심사의 분리프로그램안에 횡단 관심사에 해당부분을 분리해서 한 곳으로 모으는 것종류보안..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // 프로파일(Profile)

업데이트 :: 2018.08.07 프로파일 (profile)클래스레벨메서드레벨프로파일 선택프로파일 (profile)설정 파일을 특정 환경이나 목적에 맞게 선택적으로 사용할 수 있도록 그룹화클래스레벨자바기반 (@Profile 사용)@Configuration @Profile("dev") public class DevConfig { } @Configuration @Profile("test") public class TestConfig { } @Configuration @Profile("prod") public class ProductionConfig { } XML 기반 (profile="") 애너테이션 기반@Component @Profile("dev") public class DummyUserRepositor..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // Bean 설정분할 (import)

업데이트 :: 2018.08.07 빈 설정분할자바기반 설정분할Xml기반 설정분할빈 설정분할DI 컨테이너에서 관리하는 빈이 많아질수록 관리가 어려움빈 설정범위를 명확히 하고 가독성을 높이기 위해 목적에 맞게 분할하는 것이 좋음자바기반 설정분할@Import를 사용해서 분할된 설정을 병합@Configuration @Import({DomainConfig.class, InfrastructureConfig.class}) public class AppConfig { // DomainConfig.class와 InfrastructureConfig.class에 정의한 빈을 주입할 수 있음 } 분할된 클래스 (1)@Configuration public class DomainConfig { @Bean UserService u..

Spring/DI & AOP 2018.08.07

학습 // Spring // DI // 빈 생명주기 ( Bean Lifecycle )

업데이트 :: 2018.08.07 빈의 생명주기빈 초기화단계빈 설정정보 읽기 및 보완빈 생성 전후처리빈 생성 초기화처리빈 사용단계빈 종료단계빈 파괴 전처리DI 컨테이너 종료빈의 생명주기빈 초기화 단계 (initialization)빈 사용 단계 (activation)빈 종료 단계 (destruction)빈 초기화단계빈을 설정하는 과정빈을 인스턴스화 하는 과정빈을 생성한 다음 후처리 하는 과정빈 설정정보 읽기 및 보완public interface BeanFactoryPostProcessor { void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory); } BeanFactoryPostProcessor를 직접 구현해서 빈으로 정의하면 자신..

Spring/DI & AOP 2018.08.07