728x90

Java 5

의존성 역전 원칙(Dependency Inversion principle)

의존성 역전 원칙 (Dependency Inversion Principle) 의존성 역전 원칙(DIP)은 SOLID 원칙 중 하나입니다. SOLID는 객체 지향 디자인을 더욱 이해하기 쉽고 유연하며 유지보수 가능하게 만들기 위한 다섯 가지 디자인 패턴 집합입니다. 의존성 역전 원칙을 이해하기 위해서 우리는 반드시 제어의 역전과 의존성 주입 개념에 대해서 이해해야 합니다. Inversion of Control (제어의 역전) 제어란 무엇일까요? 그리고 역전은 무엇을 의미할까요? 이러한 질문에 답해보겠습니다. 먼저 제어와 역전을 알아봅시다. 제어란 코드의 실행 순서를 결정하는 흐름을 말합니다. 아래의 예시와 같이 코드를 작성하면 코드는 위에서부터 아래로 예측 가능한 방식으로 실행됩니다. a = 10 b = ..

DesignPattern 2023.08.13

[Intellij] Save Actions 를 이용한 자동 포맷팅

코드를 작성하다 보면 포맷팅의 일관성이 무너지고는 합니다. 그래서 JavaScript 에서는 Prettier 를 통해서 Indent 나 Tab Size 를 맞추는데요. Intellij 에서는 Java 에서 자동 포맷팅을 편하게 이용하는 방법이 있습니다. 일단 Preference(설정) - Plugin 에서 Save Actions 를 설치해줍니다. 일단 이 플러그인은 간단하게 설명해서 저장 키 (cmd + s 또는 ctrl + s ) 키를 눌렀을때 특정 액션을 트리거 해주는 플러그인 입니다. 우리는 이 트리거에 저장키를 누르면 코드를 다시 재 배열 해주는 기능을 이용할 것입니다. 만약 설치가 된다면 Intellij 를 다시 재시작 해주시길 바랍니다. 이제 저장했을때 코드를 재배열해주는 기능을 장착하기 위해..

Java 2022.01.08

[Mac] Kotlin 설치 및 CLI 에서 사용하기

맥 CLI 에서 코틀린을 사용하기 위해서 방법을 찾아보고 있었다. 일단 brew 를 통해 쉽게 설치 가능하다. brew install kotlin 위와 같이 입력하면 정상적으로 설치가 된다. 이렇게 설치되는 코틀린 SDK 는 코틀린 컴파일러 kolinc-jvm 과 코틀린 실행명령어 kotlin 이 포함되어 있다. 기존 javac 와 java 와 맵핑되는 느낌이다. 백문이 불여일타라고 한번 코드로 작성한뒤 컴파일과 실행을 해보자. fun main() { println("Hello World"); } 이제 한번 kotlinc-jvm 을 통해서 컴파일 시켜보자. kotlinc-jvm hello.kt 아래와 같이 잘 컴파일되어 Class 파일로 존재하는 것을 알 수 있다. 한번 Class 파일로 확인해보자. 아..

Kotlin 2021.12.06

Switch 문 반복을 없애기

Switch 문을 어떻게 걷어낼 수 있을까? 이건 참 어려운 경우라고 생각한다. 하지만 Switch 의 경우에는 해당 Type 을 걷어내지 않는 이상 불가능하기에 숨기는 형태로 진행할 수 있다고 생각한다. 예를 들면 아래와 같은 코드를 보자 public class PayRoll { private static final String COMISSIONED = "COMISSIONED"; private static final String HOURLY = "HOURLY"; private static final String SALARIED = "SALARIED"; public Money calculatePay(Employee e) { switch(e.type) { case COMISSIONED: return cal..

Java 2021.10.07

JVM 구조

서론 이 스터디 내용은 백기선님의 자바 스터디를 참여하기 위한 정리 내용으로, 아래 링크에서 참가 가능합니다. 1900 원 정도의 구독비로 해당 스터디 내용을 확인할 수 있으니 자바에 대해 공부하고 싶으신 분들은 참가 하시는 것을 추천 드립니다. 백기선님 유튜브 참고로 읽으시면서 틀린 내용이 있을 수도 있습니다. 댓글로 지적해주시면 감사하겠습니다 목표 자바 소스 파일을 JVM 으로 실행하는 과정 이해하기 학습할 것 JVM 이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성요소 JDK 와 JRE 의 차이 JVM 이란 무엇인가? JVM 이란 Java Virtual Machine 의 줄임말으로 추상적인 컴퓨터 머신이라고 이해하는게 좋지 ..

Java 2021.10.07
728x90