빌드할 때 '해결되지 않은 모듈 종속성'이라는 말이 나오며 빌드를 실패한다면// 종속성 없음 주석을 추가해주면 된다.// module-info.java 파일에서module KOTLN2 { // 종속성 없음}
var animals: ListAnimal 타입을 제네릭으로 가지는 List가 있다고 해봅시다.나는 이 animals를 출력하고 싶습니다.animals.forEach { it.makeSound() }// woof// meow오 쉽게 출력이 됩니다.interface Animal { fun makeSound()}그 이유는 바로 Animal이 클래스가 아닌 인터페이스 였기 때문입니다. 무슨 말이냐면요class Dog : Animal { // Animal 타입으로 다룰 수 있다. override fun makeSound() { println("Woof") }}class Cat : Animal { // Animal 타입으로 다룰 수 있다. override fun makeSound() ..
Spring WebFlux는 비동기(Asynchronous) + 논블로킹(Non-blocking) 방식의 리액티브 웹 프레임워크이다.🔹 주요 특징Servlet 기반(Spring MVC)과 달리, 비동기 방식으로 동작Reactor 기반(Mono, Flux)으로 데이터를 스트림 형태로 처리Netty, Undertow 같은 비동기 서버와 함께 사용 가능대량의 동시 요청을 처리할 때 성능이 뛰어남🔹 언제 사용해야 할까?대량의 동시 요청을 처리해야 할 때WebSocket, SSE(Server-Sent Events) 같은 실시간 데이터 스트리밍이 필요할 때API 호출이 많아 I/O 대기가 많은 시스템 (ex: 외부 API 호출, DB 조회 등)✅ 비동기 논블로킹 방식이라 높은 성능을 제공하지만, 기존 MVC 패..
코틀린 스프링부트에서 아래와 같은 예제가 있었다.@Serviceclass AService { suspend fun checkBalance(request: exRequest): ResponseEntity { return ResponseEntity.ok("Balance checked") }}@RestControllerclass AController(private val aService: AService) { suspend fun checkBalance(@RequestBody request: exRequest): ResponseEntity { return aService.checkBalance(request) }} 위 예제의 컨트롤러는 어떻게 AService를 호..
kotlin만 표시되고 java는 표시 안되고 있었다 1. 프로젝트가 Kotlin 전용으로 설정되었는지 확인File → Project Structure (Ctrl + Alt + Shift + S)Modules에서 현재 모듈이 Kotlin만 사용하도록 설정되었는지 확인Dependencies 탭에서 Java SDK가 설정되어 있는지 확인만약 Java가 빠져 있다면, + 버튼을 눌러 JDK 추가 2. 모듈에 Java 추가하기File → Project Structure (Ctrl + Alt + Shift + S) → ModulesSources 탭에서 Language Level이 Java로 설정되어 있는지 확인New 버튼을 눌러 Java Class 추가 3. 프로젝트에 Java 플러그인 추가File → Setti..
탄생 배경초기 프로그래밍은 절차적 프로그래밍이었다. 명시된 입력을 받아서 명시된 순서로 처리한 다음, 그 결과는 내는 방식이었다. 프로그램을 어떤 논리로 어떤 순서대로 써 내려가는것이 주요한 쟁점이었다. 그러나 간단한 알고리즘이면 몰라도, 조금만 복잡해지면 순서도로 나타내지는게 불가능한 스파게티코드를 양산하게 된다. 시간이 흐를수록 복잡한 프로그램이 요구되었는데, 기존 절차적 프로그래밍으로는 도저히 작성할 수가 없었던것. 이 때 구조적 프로그래밍이 탄생하게 된다. 프로그램을 함수단위로 나누고 함수끼리 호출을 하는 방식이다. 프로그램이라는 큰 문제를 해결하기 위해 작은 함수로 쪼개는 방식이기 때문에 탑-다운(하향식) 방식이라고도 불린다. 그러나 구조적 프로그래밍도 데이터 자체를 구조화 하지는 못했다. 전..