Kotlin의 Null Null가능성 nullabilityt는 NPE를 피할 수 있게 만들어짐 -> NPE를 컴파일 시점에서 잡아줄 수 있도록 하기 위함 타입뒤에 ? 을 붙여 널 가능성을 표시 fun strLen(s:String) = s.length -> strLen(null) 호출(컴파일 에러 발생하지 않음)-> 런타임 에러발생 fun strLen(s:String?) : Int = if( s!= null) s.length else 0 -> strLen(null) 호출 -> 컴파일 에러 ?타입 시스템에서는 null체크 이후에만 변수.메서드() 를 호출 할 수 있음 참고 코틀린의 런타임에서는 예를들어 String, String? 모두 같은 타입의 객체임 모든 검사는 컴파일 시점에서 수행된다 -> 런타임 시..
본 내용은 코틀린 인 액션을 읽고 저의 방식대로 정리한 글입니다. 그에따라 틀린 내용이 있을 수 있습니다. 틀린 내용이 있으면 댓글로 알려주시면 감사하겠습니다. 람다식의 문법 책에서 말하길 람다는 값처럼 여기저기 전달할 수 있는 동작의 모음이라고 설명한다. {x: Int, y:Int-> x+y} //파라미터 부분 //본문 값처럼 여기저기 전달할 수 있다는게 잘 이해가 안됐는데, 변수에도 저장할 수 있다는 예시를 보고 이해가 되었다. val sum = {x:Int, y:Int -> x+y} println(sum(1, 2)) //람다가 값이라는 증거 val getAge= {p:Person -> p.age} people.maxByOrNull(getAge) 또한 코틀린에서는 함수 호출시 마지막 인자(파라미터)가..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLcZYN%2FbtssVO47s7Z%2FQsV0CRIpKUbTxwgqvXYQCk%2Fimg.png)
현재 들어간 회사에서는 코프링이 주 핵심 기술스택이기에 해당 기술스택을 배우고자 코틀린 인 액션 스터디를 진행한다. 아래의 내용은 코틀린 인 액션을 저의 방식으로 정리한 글입니다. 인터페이스 코틀린에서의 override는 자바와 달리 @Override annotaion을 사용하지 않음 인터페이스에 프로퍼티 선언이 가능하다. 자바와 동일하게 하나의 클래스에 대해서만 extends가 가능하며, 반대로 여러개의 인터페이스 가능 코틀린에서는 ":" 으로 상속, 인터페이스화 둘다 가능하다 kotlin에서의 default 메서드 구현은 자바와 좀 다르다 추가로 아래의 코드와 같이 두개의 같은 default method를 상속한다면, 반드시 override가 필수적이다 interface Clickable { fun ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuKPCO%2FbtrwqMXZuGS%2FKuNRaRm5Dt3RCygdSgocA1%2Fimg.png)
이번에 Spring에서 다루어볼 주제는 스프링 빈과 컨테이너입니다. 컨테이너와 빈(Bean) 정확히는 Ioc컨테이너 혹은 DI컨테이너라고 불립니다. 즉 컨테이너는 DI(의존관계 주입)과 IoC(의존관계 연결)의 기능을 해줍니다. 우선 구처적인 설명을 드리기 위해 간단한 예제 코드를 알려드리겠습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return n..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ4pev%2Fbtrv6Yq4n0n%2FN4dKyBnPjzUyycL8d47J11%2Fimg.jpg)
안녕하세요 이번시간에는 저번 시간에 다루었던 DI에 이어 DI와 연관되어 있는 IOC에 대해 알아보겠습니다. IoC(Inversion of Control)?? IOC? IOC=Inversion Of Control 입니다. 직역하면 제어의 역전입니다. 우선 IoC가 적용되지 않은 코드를 보겠습니다. 1 2 3 4 5 public interface Fruit { //인터페이스 관한 함수들 } cs 1 2 3 4 public class Apple implements Fruit{ //Fruit 관한 함수구현 } Colored by Color Scripter cs 1 2 3 4 public class Food { private Fruit fruit = new Apple(); } Colored by Color Sc..
Dependency DI를 알기전 Dependency에 대해서 먼저 알아봅시다. 1 2 3 4 5 6 7 8 public class Case { private Pencil pencil; public Case(){ this.pencil=new Pencil(); } } Colored by Color Scripter cs 위와 같이 Case(필통)은 Pencil이라는 class에 의존하고 있습니다. 즉 Case class는 Pencil에 영향을 받는것입니다. 이것을 '의존관계'를 가진다고 부릅니다. 의존관계 인터페이스 위와 같은 코드는 문제가 있습니다. Case class는 Pencil class만을 의존할 수 있습니다. 하지만 Case(필통)은 연필뿐만 아니라 지우개 등등 다른 여러가지를 가질 수 있습니다...
POJO는 Plain Old Java Object입니다. 직역한다면 오래된 방식의 간단한 자바 오브젝트입니다. POJO가 생겨난 이유는 개발자들이 개발하면서 무거운 프레임워크 등을 끌어오면서 점점 무거운 객체로 만들어지는데, 이렇게 되면서 다른기술들에 점점 의존하게 되어 유지보수에 어려움을 겪었습니다. 이것을 극복하고자 POJO라는 개념이 나왔습니다. POJO는 어떤것인가? POJO의 개념은 특정 자바 모델이나 기능, 프레임워크를 따르지 않는 Java Object입니다. 쉽게 생각이 안 떠오를 수도 있기에 아래와 같은 예시를 가져왔습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 public class Member { pr..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFXnOz%2FbtrtakckAoj%2FjykafqcqRBHt6IzBeYqzi1%2Fimg.png)
안녕하세요. 규턴이입니다. 첫 포스팅은 스프링이 무엇인지 그리고 특징들에 대해 간단히 정리하고자 하는 글입니다. 이 글은 인프런의 김영한 님의 '스프링 핵심 원리-기본편'을 참고하였습니다. Spring 이란? 우선 간단하게 정리하자면 Java이용+백엔드+프레임워크 입니다. Java: 미국의 "선마이크로시스템즈" 회사에서 개발한 프로그래밍 언어입니다. 백엔드: 흔히 우리가 보는 웹사이트나 웹 애플리케이션 등의 프로세스, 서버, 데이터베이스를 관리하는 기술입니다. 프론트엔드는 눈에 보이는 영역이라면 백엔드는 눈에 보이지 않는 영역입니다. 프레임워크: 우선 사전적인 의미는 다음과 같습니다. "프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임" 즉 하나의 애플리케..