본문 바로가기

개발65

[코틀린] 코틀린 함수 코틀린 함수의 기본 구조 fun 함수명([변수명: 타입], ...): [반환 타입]{ ... } fun sum(a: Int, b: Int): Int { var sum = a + b return sum } fun sum(a: Int, b: Int): Int = a + b fun sum(a: Int, b: Int) = a + b 함수 반환값 생략 fun printSum(a: Int, b: Int): Unit{ println("sum of $a and $b is ${a+b}") } fun printSum(a: Int, b: Int) { println("sum of $a and $b is ${a+b}") } 반환값이 없을 경우 코틀린의 특수한 자료형인 Unit을 반환값으로 사용. 반환값의 타입이 없을 경우 코틀.. 2021. 12. 10.
[스프링] 스프링 핵심원리 - 빈 생명주기 콜백 스프링 빈의 시작이나 끝에 함수를 호출하여 작업을 해야될 수도 있다. 빈 생명주기 콜백으로 이를 수행할 수 있다. 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 빈 생명주기 콜백의 방법 1. 인터페이스 (InitializingBean, DisposableBean) 2. 설정정보에 초기화 메서드, 종료 메서드 지정 @Bean(initMethod="", destroyMethod="") 3. @PostConstruct, @PreDestroy 어노테이션 3번 방법을 기본으로 사용하고, 코드를 고칠 수 없는 외부 라이브러리를 초기화, 종료해야 하면 2번 방법을 사용한다. 인터페이스 (Initializ.. 2021. 12. 10.
[코틀린] 변수와 자료형, Null 처리 코틀린에서 메인 함수는 자바와 달리 클래스 안에 생성하지 않는다. fun main(){ // 실행 내용 } 변수와 자료형 val과 var val : 초기화 후 더이상 변경할 수 없음 var : 초기화 후에도 값을 바꿀 수 있음 var/val 변수명: 타입 = 값 val number = 10 // number는 Int로 추론 var language = "Korean" // language는 String으로 추론 val secondNumber: Int = 20 // sercondNumber는 자료형을 Int로 명시적으로 지정 var name: String // 초기화하지 앙않으면 타입을 명시해야함 language = "English" // var 선언이므로 변수의 값을 재할당 할 수 있다. 타입은 기본적으로.. 2021. 12. 8.
[스프링] 스프링 핵심원리 - 의존관계 자동주입 의존관계 주입 방법 4 가지 생성자 주입 수정자 주입 (setter 주입) 필드 주입 일반 메서드 주입 기본적으로 생성자 주입을 사용하고, 가끔 옵션이 필요하면 수정자 주입을 선택한다. 생성자 주입 생성자에 @Autowired를 붙여 사용 생성자가 딱 1개 있을 경우 @Autowired를 생략해도 됨 생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다. 불변, 필수 의존관계에 사용 (필수는 null 값이 들어가면 안되는 걸 의미) 생성자 주입을 사용하면 필드에 final 키워드를 사용할 수 있다. -> 값이 설정되지 않으면 오류를 컴파일 시점에서 막아줌 롬복 @RequiredArgsConstructor를 사용하여 간단하게 생성자 주입을 설정할 수 있음 수정자 주입 (setter 주입) setter에 @.. 2021. 12. 6.