인프런 김영한님 스프링 DB 1편 - 데이터 접근 핵심 원리 강의 중 1장을 보고 핵심 내용을 정리했습니다. JDBC 표준 인터페이스 등장 이유 (일반적으로 사용할 때) 애플리케이션 서버와 DB 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결SQL 전달: 애플리케이션 서버는 DB가 이해할 수 있는 SQL을 연결된 커넥션을 통해 DB에 전달결과 응답: DB는 전달된 SQL을 수행하고 그 결과를 응답문제는 과거에는 각각의 데이터베이스마다 사용법(앞서 말한 3단계 방법)이 달랐다. 이로 인해 생기는 2가지 큰 문제가 있었다.1. 변경에 취약 : 데이터베이스를 다른 종류의 데이터베이스로 변경하면 애플리케이션 서버에 개발된 데이터베이스 사용 코드도 함께 변경해야 했다.2. 새로..
스레드 컨텍스트 스위칭과 프로세스 컨텍스트 스위칭에 대해 알아보고,왜 스레드 컨텍스트 스위칭이 더 빠른지 정리해보려고 한다. 우선 그 전에 컨텍스트 스위칭부터 짚고 넘어가자 컨텍스트 스위칭(context switching)CPU/코어에서 실행 중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것을 말한다. 여기서 좀 더 생각해볼 부분이 있다. (feat. 프로세스에서 다른 프로세스의 교체)오늘날의 컴퓨터에서는 하나의 프로세스는 기본적으로 하나의 스레드는 반드시 가지고 있다. 왜냐하면 스레드가 CPU혹은 Core에서 실행되는 기본 단위이기 때문이다. 따라서 프로세스에서 다른 프로세스로 교체된다는 건 어떤 프로세스 안에 실행되던 스레드가 다른 프로세스 안에 실행되는 스레드로 바뀐..
이번에는 프로세스와 관련된 내용들을 정리해보려고 한다. 이미 어느 정도 알고는 있지만, 이번 기회에 정리를 통해 명확하게 다시 한번 짚고 넘어가려 한다. 그렇기에 우선, 프로세스에 대해 알아보기 전에 알아야 하는 내용들을 먼저 짚고 넘어가려고 한다. 사전 지식 프로그램(program) 컴퓨터가 실행할 수 있는 명령어들의 집합이다. 프로세스(process) 컴퓨터에서 실행 중인 프로그램을 말한다. 프로세스의 주요 특징은 각각의 프로세스는 독립된 메모리 공간을 할당 받고, 독립된 메모리 공간에 명령어들과 데이터를 가지게 된다. CPU(Central Processing Unit) 명령어를 실행하는 연산 장치 메인 메모리(Main memory) 흔히 메모리라고 부른다. 프로세스가 CPU에서 실행되기 위해 대기하..
비동기 프로그래밍이란? - Async 한 통신 - 실시간성 응답을 필요로 하지 않는 상황에서 사용 (ex. Notification, Email 전송, Push 알림) - Main Thread가 Task를 처리하는 게 아니라 Sub Thread에게 비동기로 처리 해야 되는 Task를 위임하는 행위라고 할 수 있다. 그러면 Main Thread는 알아서 자동으로 처리해줄텐데, Sub Thread는 어떻게 생성하고 관리를 할 수 있을까? 스프링 프레임워크를 기준으로 설명하면, 스프링에서 비동기 프로그래밍을 하기 위해서는 우선, ThreadPool을 정의할 필요가 있다. 왜? 스레드풀을 생성해야할까? 비동기는 앞서 말했듯 Main Thread가 아닌 Sub Thread에서 작업이 진행된다. 자바에서는 Threa..
Profile이 필요한 이유 실제 회사(현업)에서 개발을 할 때엔 N개의 Profile을 설정한다. (ex. local, dev, test, prod 등) Profile을 나누는 이유는 환경별로 설정해야 하는 Property 값들이 다르기 때문이다. 더불어 만약 환경별로 로깅 레벨을 다르게 두고 싶을 때 어떻게 해야할까? 이 때 profile을 사용하여 손쉽게 애플리케이션 동작을 조정할 수 있기에 profile을 알아둘 필요가 있다. Spring Profiles Spring Profiles는 애플리케이션 구성의 일부를 분리하고 특정 환경에서만 사용할 수 있도록 방법을 제공한다. 예를 들어, 개발 환경에서만 사용할 수 있는 Bean이 있고, 프로덕션용 Bean이 있을 수 있다. Profile을 사용하면 특..