Home
MXXI.kr
Cancel

Kotlin Default Arguments와 Named Arguments

개요 Java는 파라미터가 많은 생성자를 처리하기 위해 생성자 오버로딩(Constructor Overloading)이 필요하지만 보일러플레이트 코드가 증가하는 문제 발생함 Lombok @Builder로 보일러플레이트를 줄일 수 있지만 외부 의존성, IDE 설정, 코드 가시성 등 고려해야 할 점이 있음 Kotlin은 Default Argu...

Kotlin val과 Data Class

개요 Kotlin의 val은 참조 불변성만 보장하며 객체 불변성을 보장하지 않음 Data Class는 보일러플레이트 코드를 제거하지만 순환 참조와 상속 제한 등의 주의점이 있음 Java의 final, record와 비교하여 Kotlin만의 특징과 장점을 이해함 Spring/JPA 환경에서 발생할 수 있는 실무적인 문제와 해결책을 제시...

Kotlin 상속 제한과 Spring과의 통합

개요 Kotlin은 기본적으로 모든 클래스와 메서드를 final로 설정하여 상속을 제한함 이는 Joshua Bloch의 “Effective Java” 원칙을 언어 수준에서 강제한 설계 철학임 Spring Framework는 CGLIB 프록시를 사용하므로 Kotlin의 final 클래스와 충돌이 발생함 all-open 플러그인과 Int...

build.gradle.kts와 Kotlin Script, DSL의 이해

개요 빌드 도구는 Maven의 XML, Groovy DSL을 거쳐 Kotlin DSL로 발전해옴 Java와 Kotlin의 빌드 파일 차이와 각각의 선택 배경을 이해함 .kts 확장자의 의미와 Kotlin Script의 실행 방식을 학습함 DSL의 개념과 Lambda with Receiver를 활용한 Gradle Kotlin DSL의 ...

Kotlin의 Null Safety

개요 Kotlin의 타입 시스템에 내장된 Null Safety 메커니즘을 통해 NullPointerException을 컴파일 타임에 방지함 Safe Call(?.)과 Elvis Operator(?:)의 동작 원리 및 다른 언어들과의 비교를 학습함 Java 상호운용 시 주의사항과 Zero-Cost Abstraction의 의미를 이해함 ...

애플리케이션 아키텍처란?

개요 애플리케이션 아키텍처(Application Architecture)란 하나의 서비스 또는 단일 서버 내부에 존재하는 코드, 모듈, 계층(Layer)들을 어떻게 설계하고 조직화할 것인지 정의하는 내부적인 구조 패턴임 시스템 아키텍처가 거시적인 서버와 인프라의 배치 문제라면, 애플리케이션 아키텍처는 코드의 유지보수성, 테스트 확장성, 핵심...

시스템 아키텍처란?

개요 시스템 아키텍처(System Architecture)란 여러 대의 서버, 서비스, 데이터베이스 등 다양한 인프라 요소들이 어떻게 연결되고 상호작용하는지를 정의하는 전체적인 구조적 밑그림임 애플리케이션의 규모, 비즈니스 요구사항, 조직의 구조에 따라 유연하게 선택되어야 함 모놀리식 아키텍처 (Monolithic Architectu...

OAuth 2.0의 개념과 동작 원리

개요 OAuth 2.0(Open Authorization)은 사용자가 비밀번호를 제공하지 않고도, 다른 웹사이트상에 있는 자신의 데이터에 대한 접근 권한을 제3자 애플리케이션에게 부여할 수 있게 하는 표준 프로토콜임 구글, 깃허브, 카카오 등을 활용하는 소셜 로그인이 바로 이 프로토콜을 기반으로 구현됨 참여자 (Roles) R...

JWT(JSON Web Token)의 구조와 동작 원리

개요 JWT(JSON Web Token)는 당사자 간에 정보를 안전하게 JSON 객체로 전송하기 위한 간결한 자가 수용적 웹 표준 방식임 백엔드 서버가 클라이언트의 상태를 유지하지 않는 무상태(Stateless) 기반 인증에 주로 사용됨 토큰 자체가 필요한 모든 정보를 담고 있으므로 데이터베이스나 세션 조회를 최소화하고 수평 확장에 유리...

Spring Security 아키텍처와 인증/인가 구조

개요 Spring Security는 Spring 기반 애플리케이션의 인증(Authentication), 인가(Authorization) 및 일반적인 보안 보호 기능을 제공하는 프레임워크임 Servlet Filter 기반으로 동작하며, 클라이언트의 요청이 DispatcherServlet에 도달하기 전에 보안 처리를 선제적으로 수행함 S...