실제 세계의 객체와 객체지향 세계의 객체의 차이 앞선 글에서 객체를 실제 세계에 비유하니 객체가 무엇인지 한 번에 이해를 했을 것이다. 이러한 이유 때문에 흔히들 객체를 실제 세계에 비유해 설명한다. 하지만, 실제 세계의 객체는 프로그래밍 상의 객체와 다른 점이 있다. 실제 세계에서는 대부분의 객체들은 수동적이며, 사람이나 고양이 혹은 강아지 같은 자율적인 객체들에 의해 수동적으로 행동한다. 하지만 객체지향 세계의 객체는 수동적으로 행동하지 않는다. 예를 들어보자. 사람들이 사용하는 조명, 펜, 가위 등은 사람에 의해 수동적으로 행동한다. 조명은 사람에 의해 켜지고, 펜과 가위는 사람에 의해 사용된다. 그렇다면 이러한 수동적인 객체들은 프로그래밍 상의 객체가 될 수 없는걸까? 당연히 될 수 있다. 수동적..
Kotlin
개발을 하다보면 객체에 대한 하나의 인스턴스만 필요할 때, 하나의 인스턴스를 재사용하기 위해 싱글톤 패턴을 구현해야 할 일이 생긴다. *싱글톤 패턴 : 객체의 인스턴스를 1개만 생성하여 계속 재사용 하는 패턴 Java에서의 싱글톤 기존 자바에서는 싱글톤 패턴을 구현하기 위해 많은 코드를 작성해야 했다. 보통은 다음과 같은 방식으로 싱글톤 패턴을 구현하였다. public class SingletonClass { // 1. static으로 선언된 객체를 담는 변수(instance) private static SingletonClass instance; public String sampleString = "Sample String"; // 싱글톤에 집중하기 위해 public으로 설정 private Single..
sealed class의 등장 배경 여러 자식 Class들이 하나의 부모 Class를 상속 받았다고 했을 때 컴파일러는 부모 Class를 상속 받은 자식 Class들이 있는지 알지 못한다. 예를 들어보자. 우리가 사용자의 런닝 운동을 기록해주는 앱을 만들고 있다. 이때 우리는 사람의 상태를 클래스로 만들고자 한다. 상태의 종류는 3가지로 뛰는 상태(Running), 걷는 상태(Walking), 쉬는 상태(Idle)가 있다. 이는 다음과 같이 코드로 만들어질 수 있다. abstract class PersonState class Running : PersonState() class Walking : PersonState() class Idle : PersonState() 코드1. class 상속 예제 각 P..
Controller란? Controller란 서버의 진입점이자, 사용자의 요청(Request)을 받아들인 후 어떤 처리를 해야할지 결정하는 부분이다. 이렇게 말하면 너무 추상적이니 예시와 함께 알아보도록 하자. 사용자는 사용하는 웹사이트에 대한 HTTP통신을 통해 홈페이지에 접속한다. https://kotlinworld.com/category/Kotlin 예를 들어 위의 주소를 웹브라우저의 검색 창에 치면 kotlinworld.com을 처리하는 서버는 /category/Kotlin에 대한 결과값을 사용자에게 View로 만들어 반환한다. 그 결과는 아래와 같다. 이것이 가능한 이유는 서버에서 /category/Kotlin에 대한 요청을 의 View를 반환하도록 처리 하였기 때문이다. Spring에서 Con..
Intellij 무료 버전 1. https://start.spring.io/ 에 접속해서 과 같이 세팅한다. Project의 빌드 시스템을 Gradle로 바꾼다 : Gradle Project Project에서 사용할 Language를 Kotlin으로 바꾼다 : Kotlin Spring Boot의 Version을 Stable한 버전으로 세팅한다 : 2.5.4 ADD DEPENDENCIES를 눌러 Spring Web, Thymleaf(타임리프), Spring Boot DevTools를 추가한다. 2. 위 에서 Generate 버튼을 누르면 아래와 같이 demo.zip 파일이 생성된다. 해당 파일의 압축을 푼다, 3. 다음의 과정을 통해 생성한 프로젝트를 연다 Intellij를 켠 후 File-Open을 누른..