목록Language & Framework (34)
고딩왕 코범석
Index 코틀린의 이모저모 Type Alias와 as import 구조분해와 componentN 함수 Jump와 Label TakeIf와 TakeUnless scope function scope function이란? scope function의 분류 scope function의 적절한 용례 scope function과 가독성 코틀린의 이모저모 Type Alias와 as import typealias는 긴 이름의 클래스 혹은 함수 타입이 있을 때 축약하거나 더 좋은 이름을 쓰고싶을 경우 사용한다. typealias FruitFilter = (Fruit) -> Boolean fun filterFruits(fruits: List, filter: FruitFilter) {...} data class Ultra..
Index 코틀린에서 배열과 컬렉션을 다루는 방법 배열 코틀린에서의 Collection - List, Set, Map 컬렉션의 null 가능성, 자바와 함께 사용하기 코틀린에서 다양한 함수를 다루는 방법 확장함수 infix 함수 inline 함수 지역함수 코틀린에서 람다를 다루는 방법 코틀린에서의 람다 Closure try with resource 코틀린에서 컬렉션을 함수형으로 다루는 방법 다양한 컬렉션 처리 기능 List를 Map으로 중첩된 컬렉션 처리 코틀린에서 배열과 컬렉션을 다루는 방법 배열 잘 사용하지 않는다. val arr = arrayOf(100, 200) val plusArr = arr.plus(300) for ((i, value) in plusArr.withIndex()) { printl..
Index 코틀린에서 클래스를 다루는 방법 클래스와 프로퍼티 생성자와 init 커스텀 getter, setter backing field 코틀린에서 상속을 다루는 방법 추상 클래스 인터페이스 클래스를 상속할 때 주의할 점 상속 관련 지시어 정리 코틀린에서 접근 제어를 다루는 방법 자바와 코틀린의 가시성 제어 코틀린 파일의 접근 제어 다양한 구성요소의 접근 제어 자바와 코틀린을 함께 사용할 경우 주의할 점 코틀린에서 object 키워드를 다루는 방법 static 함수와 변수 싱글톤 익명 클래스 코틀린에서 중첩 클래스를 다루는 방법 중첩 클래스의 종류 코틀린의 중첩 클래스와 내부 클래스 코틀린에서 다양한 클래스를 다루는 방법 Data class Enum class Sealed Class, Sealed Int..
Index 코틀린에서 제어문을 다루는 방법 if문 Expression과 Statement switch와 when 코틀린에서 반복문을 다루는 방법 for-each문 for문 Progression과 Range while문 코틀린에서 예외를 다루는 방법 try catch finally Checked Exception과 Unckecked Exception try with resource 코틀린에서 함수를 다루는 방법 함수 선언 문법 default Parameter named Argument 같은 타입의 여러 파라미터 받기 (가변인자) 코틀린에서 제어문을 다루는 방법 if문 fun validateScoreIsNotNegative(score: Int) { if (score < 0) { throw IllegalArg..
Index 변수 다루기 변수 선언 키워드 - var, val 차이점 Kotlin에서의 Primitive Type Kotlin에서의 nullable 변수 Kotlin에서의 객체 인스턴스화 null 다루기 Kotlin에서의 null 체크 Safe Call과 Elvis 연산자 널 아님 단언!! 플랫폼 타입 Type 다루기 기본 타입 타입 캐스팅 Kotlin의 3가지 특이한 타입 String Interpolation, String indexing 연산자 다루기 단항 연산자 / 산술 연산자 비교 연산자와 동등성, 동일성 논리 연산자 / 코틀린에 있는 특이한 연산자 연산자 오버로딩 변수 다루기 변수 선언 키워드 - var, val 차이점 Java에서의 int와 final int의 차이 = 가변이냐? 불변이냐? va..
안녕하세요! 이번 포스팅은 JPA에서 OneToMany 양방향 관계에서 자식 객체를 부모 객체에서 다뤘을 때 겪었던 이슈를 포스팅해보고자 합니다. 우선, 준비할 엔티티 객체는 다음과 같습니다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor(access = AccessLevel.PROTECTED) @Builder public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "PRODUCT_ID") private Long id; @Builder.Default @OneToMany( mappedBy..
안녕하세요! 이번 포스팅은 제가 jasypt를 사용하고 겪은 이슈에 대해 공유드리려 합니다. Jasypt? Jasypt는 홈페이지에서 다음과 같이 설명합니다. Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works. 직역해보면 개발자들의 프로젝트를 기본적으로 암호화 해줄수있게 해주고 보안적인 지식이 깊지 않더라도 쉽게 적용할 수 있는 자바 라이브러리 라고 합니다. 사용 방법 우선 build.gradle에..
안녕하세요! 이번 포스팅에서는 AOP에 대해 포스팅해보려고 합니다. 김영한 님의 스프링 핵심 원리 - 고급편을 참조하여 정리했습니다! 🙆🏻♂️ Aspect(관점)와 AOP Aspect는 부가 기능과 부가 기능을 어디에 적용할지 정의한 것입니다. 어드바이저(포인트컷 + 어드바이스)도 개념상 하나의 Aspect라 볼 수 있습니다. 관점이라는 말 대로 애플리케이션을 바라보는 관점을 하나의 기능에서 횡단 관심사 관점으로 달리 보는 것이라고 할 수 있습니다. 메서드에 공통으로 들어가는 로직(트랜잭션 호출, 로깅 등등..)이라고 이해하면 될 것 같습니다. 이렇게 Aspect를 사용한 프로그래밍 방식을 AOP(Aspect-Oriented-Programming)이라고 합니다. 🖥 AOP 적용 방식 1. 컴파일 시점 ..