본문 바로가기

🤔 @RequestBody - DTO, Map 무엇을 선택할까? 🗣 서론 이메일 중복 체크하는 API를 아래와 같이 만들었다. EmailCheckRequest DTO는 email만 있는 DTO이다. 최근 무의식적으로 DTO를 생성하고 있는 것 같았다. Map을 사용할 수도 있는데 나만의 기준을 정하는 것이 필요하다고 생각하였다. public ApiResult checkEmail(@RequestBody EmailCheckRequest emailCheckRequest) { ... 📌 DTO, Map 장단점 DTO Map 장점 명시적으로 표현 할 수 있다. 추가적인 class가 필요없다. 단점 클래스를 매번 만들어야 한다. 파악하기 어려울 수 있다. DTD에 대한 네이밍을 제대로 표현하기가 어려울(?) 때가 있다. 직접 key 값을 다루어야 하기 때문에 휴먼 에러가 발생할..
🤔 @Component, @Bean, @Configuration 차이는 무엇일까? 📌 @Component 개발자가 직접 만든 클래스를 빈으로 등록한다면 해당 어노테이션을 사용한다. 즉, 직접 컨트롤이 가능한 클래스를 의미한다. 📌 @Bean 개발자가 컨트롤이 불가능한 외부 라이브러리 같은 경우, 설정을 위한 클래스를 빈으로 등록한다면 해당 어노테이션을 활용한다. 📌 @Configuration 1개 이상 @Bean을 제공하는 클래스라면 해당 어노테이션을 명시한다.
👨🏻‍💻 Undertow 적용하기 (다른 WAS 적용해보기) 📌 서론 SpringBoot를 사용하면서 내장 WAS가 디폴트로 설정되어 있는 Tomcat 이외에 다른 WAS를 사용해보겠다는 생각이 다소 없었던 것 같다. SpringBoot 관련 스터디를 진행하면서 아래와 같은 피드백을 받았고, 이번 기회에 다른 WAS를 적용해보려고 한다. 📌 Tomcat, Jetty, Netty, Undertow Tomcat, Jetty, Netty는 자세히는 몰라도 한 번씩은 들어봤다. 사실 Undertow는 처음 들어봤다. 피드백 중에 Undertow를 왜 적용 해보라고 하는 것일까? 라는 생각과, Tomcat 보다 장점이 있기 때문이지 않을까? 라고 생각했다. 그래서 그냥 사용하기 보다 다른 선택지들을 비교하며 사용해보려고 한다. Tomcat 커뮤니티가 활발하며, 자바 진영에..
💻 KOCW-OS-4: Process 🗣 서론 KOCW 반효경 교수님의 운영체제 수업을 들으면서 작성한 글입니다. [Process 1] 프로세스의 개념, 프로세스의 상태(Process State), 프로세스의 개념, 프로세스 상태도, Process Control Block(PCB), 문맥 교환(Context Switch), 프로세스를 스케줄링하기 위한 큐, Ready Queue와 다양한 Device Queue, 스케줄러(Scheduler) [Process 2, 3] Thread, Single and Multithreaded Processes, Benefits of Threads, Implemetation of Threads 📌 프로세스의 개념 "Process is a program in execution" 프로세스의 문맥(context) 프..
💻 KOCW-OS-3: System Structure & Program Execution 2 🗣 서론 KOCW 반효경 교수님의 운영체제 수업을 들으면서 작성한 글입니다. 동기식 입출력과 비동기식 입출력, 저장장치 계층 구조, 프로그램의 실행, 프로그램의 실행(메모리 load), 시스템 콜(System Call), DMA(Direct Memory Access), 서로 다른 입출력 명령어, 커널 주소 공간의 내용, 사용자 프로그램이 사용하는 함수 📌 동기식 입출력과 비동기식 입출력 동기식 입출력 (synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후 제어가 사용자 프로그램에 넘어간다. [구현 방법 A] - I/O 요청을 후 끝날 때까지 기다리면, CPU를 낭비시킨다. - 매 시점 하나의 I/O만 일어날 수 있다. -> CPU를 낭비시키는 구현 방법 [구현 방법 B] - I/O 요청..
💻 KOCW-OS-2: System Structure & Program Execution 1 🗣 서론 KOCW 반효경 교수님의 운영체제 수업을 들으면서 작성한 글입니다. 컴퓨터 시스템 구조, Mode bit, Timer, Device Controller, 입출력(I/O)의 수행, 시스템 콜(System Call), 인터럽트(Interrupt) 📌 컴퓨터 시스템 구조 Main Memory CPU의 작업 공간을 말한다. device controller 각각의 IO 디바이스를 전담하는 작은 CPU 역할을 한다. device controller에는 디바이스의 정보를 담기 위한 local buffer라는 것이 존재한다. [local buffer] 메인 CPU의 작업 공간인 메인 메모리가 있듯이 디바이스 컨트롤러도 작업 공간이 필요한데 local buffer가 그 역할을 한다. [질문] CPU 대신에 de..
💻 KOCW-OS-1: Introduction to Operating Systems 🗣 서론 KOCW 반효경 교수님의 운영체제 수업을 들으면서 작성한 글입니다. 총 11개의 챕터와 세부적으로 28개의 강의가 있다. 완강을 목표로 하고 있고, 강의를 들으면서 정리하고 2 회독 후 정리했던 글을 다시 수정하려고 한다. 📌 운영체제(Operating System, OS)란? 일종의 소프트웨어인데 컴퓨터 하드웨어 윗단에 설치되는 소프트웨어이다. 컴퓨터 하드웨어와 각종 소프트웨어, 사용자를 연결해주는 계층이다. [좁은 의미의 운영체제] 커널을 뜻하며, 운영체제의 핵심 부분으로 메모리에 상주하는 부분 [넓은 의미의 운영체제] 커널뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 📌 운영체제의 목적 1. 프로세서, 기억장치, 입출력 장치 등을 자원이라고 하는데 운영체제는 이러한 자원을 효율적으로 ..
👀 IntelliJ: 메서드 사용 정보 표시하기 👀 백기선 님의 라이브 방송을 보다가 정말 유용하다는 기능을 발견했습니다. 👀 해당 메서드가 어디서 몇 개 사용되고 있는지 표시해주는 기능입니다. 먼저 Preferences를 클릭해주세요. Editor - Inlay Hints - Java - Code version으로 들어가서 Usages 부분을 체크해주세요. 여기까지 설정하시면 메서드 위에 5 usages가 보입니다. 클릭하면 어느 곳에서 사용되고 있는지 확인할 수 있습니다.