분류 전체보기 39

타입스크립트

자바 다음으로 제일 관심있는 언어인 타입스크립트를 드디어! 공부하기 시작합니다. 강의는 인프런의 한 입 크기로 잘라먹는 타입스크립트를 중심으로 공부할 예정입니다. 이미 다른 강의인 리액트를 수강했었는데요, 강사님의 딕션도 좋고 강의 흐름도 좋아서 추천드립니다. 아무튼. 이번 포스트에서는 JS와 TS의 차이점에 대해서 간단히 정리하겠습니다. TS는 JS입니다. JS를 포함하는 언어입니다. JS의 한계점을 극복하고자 다른 특징들을 가진 언어입니다. 가장 큰 차이는 타입 정의입니다. 자바스크립트는 동적 타입 시스템이기 때문에 코드를 실행하기 전에는 오류를 알 수 없습니다. 타입을 지정하지 않습니다. 반면에 타입스크립트는 타입을 미리 정의해 두기도 하고, 타입을 추론해서 사용하기 때문에 자바스크립트의..

TypeScript 2026.02.23

[Spring] JPA - 1

안녕하세요? 오늘은 스프링 파트 중 JPA 같은 ORM을 왜 쓰는지, 그리고 JOIN개념을 JPA 관점에서 어떻게 이해하면 좋은지 공부하려 합니다.ORM이란 무엇인가요?ORM(Object-Relational Mapping)이란, 객체(자바 클래스)와 관계형 데이터베이스의 테이블을 매핑해서 다루게 해주는 방식입니다.즉, DB에 데이터를 넣고 빼는 일을 할 때, 자바에서는 객체로 생각하고, DB에서는 테이블/행(row)로 저장되는데,이 둘 사이의 간극을 ORM이 메워줍니다.JPA는 ORM?정확히 말하면 JPA는 ORM 표준입니다.JPA 자체는 규격이고실제 구현체로는 보통 Hibernate 같은 구현체가 동작합니다.그래서 실무에서 JPA 쓴다는 말은 보통JPA 표준 + Hibernate 구현체 조합을 의미하는..

Spring 2026.02.17

[운영체제] 복습

안녕하세요? 오늘은 운영체제 파트에 대한 복습을 진행하려 합니다. 올렸던 포스트를 확인해보니 문득, 운영체제에 대한 개념과 원리를 빼먹은게 보이더군요. 참 어렵습니다. 하나씩 원리를 이해하면서 정리하면 쉽겠건만, 중요 개념을 먼저 정리하려다 보니 이런 일이 생기네요. 그럴 때마다 이렇게 복습 포스트를 넣으려 합니다. 운영체제란? 운영체제란 프로그램 실행에 있어서 필요한 요소입니다.실행할 프로그램에 필요한 자원을 할당하고, 프로그램이 올바르게 실행되도록 돕는 일종의 프로그램입니다. 운영체제 메모리에는 커널 영역과 사용자 영역이 있습니다. 운영체제는 커널 영역에 들어가게 됩니다. 역할운영체제의 역할은 다음과 같습니다.메모리 관리cpu관리입출력장치 관리자원 접근 및 할당파일 시스템 관리 운영체제는 쉽게 말하..

운영체제 2026.02.16

[Java] 커넥션풀

오늘은 디비 관련, 커넥션풀에 대해서 포스트 해보겠습니다.1. 커넥션 풀(Connection Pool)이란?백엔드 애플리케이션을 개발하다 보면 데이터베이스 연결을 매우 자주 사용하게 됩니다.이때 매 요청마다 DB 연결을 새로 생성하고 종료하는 방식은 성능에 큰 부담을 줍니다.이 문제를 해결하기 위한 방법이 커넥션 풀(Connection Pool) 입니다.1. 커넥션 풀이 필요한 이유데이터베이스 연결은 생각보다 비용이 큰 작업입니다.DB 연결 과정은 다음과 같은 단계를 거칩니다.TCP 연결 생성인증 및 세션 생성트랜잭션 준비이 과정이 매 요청마다 반복되면 다음과 같은 문제가 발생합니다.응답 속도 저하DB 서버 부하 증가연결 수 초과 오류 발생따라서 연결을 미리 만들어 두고 재사용하는 방식이 필요합니다. 이..

카테고리 없음 2026.02.12

[Spring] Spring WebFlux와 Spring MVC - 1

오늘은 스프링 WebFlux와 MVC에 대해서 알아보겠습니다.Spring에서 웹 애플리케이션을 만들 때 대표적으로 사용하는 방식이 Spring MVC와 Spring WebFlux입니다.두 기술은 모두 웹 애플리케이션을 만들기 위한 프레임워크이지만, 요청을 처리하는 방식이 다릅니다.1. Spring MVCSpring MVC는 동기 방식(Synchronous)으로 동작하는 전통적인 웹 프레임워크입니다.사용자가 요청을 보내면 서버는 해당 요청을 처리하는 동안 스레드 하나를 계속 점유합니다.==> 처리가 끝나야 스레드가 반환됩니다.즉, 요청 하나당 스레드 하나가 필요합니다.이 방식은 구조가 단순하고 이해하기 쉬워서 대부분의 웹 서비스에서 널리 사용되고 있습니다.특징- 동기 방식 처리입니다.- 스레드 기반 모델입..

Spring 2026.02.11

[운영체제] 스택

프로세스와 스레드의 구조를 정리해보면, 멀티 스레드는 하나의 프로세스 안에서 여러 실행 흐름이 동시에 존재하는 방식이었습니다.이때 운영체제는 CPU 시간을 여러 스레드에 번갈아 할당하면서 실행을 이어가고, 그 과정에서 컨텍스트 스위칭이 발생한다고 했습니다. Q. 같은 프로세스 안에서 메모리를 공유하는데, 스택은 스레드마다 독립적으로 할당하는 이유 이번 포스트에서는 이 질문을 중심으로 정리해보겠습니다.1. 스택은 실행 흐름의 상태를 담는 공간스택에는 주로 다음 정보가 들어갑니다.함수 호출 순서(콜 스택)리턴 주소(어디로 돌아갈지)매개변수지역 변수임시 계산 값스택은 단순한 메모리 공간이 아니라 지금 이 스레드가 어디까지 실행했는지를 저장하는 실행 기록입니다.2. 스레드마다 실행 흐름이 다르다멀티 스레드 ..

운영체제 2026.02.09

[운영체제] 프로세스 스레드2

프로세스와 스레드의 동작 방식과 멀티 처리 구조에 대해 조금 더 심화적으로 정리해보겠습니다.1. 멀티 프로세스와 멀티 스레드먼저 멀티라는 개념부터 살펴보겠습니다.멀티 프로세스란?멀티 프로세스는 여러 개의 프로세스를 동시에 실행하는 구조입니다.각 프로세스는 독립적인 주소 공간을 가지고 있기 때문에 서로의 메모리에 직접 접근할 수 없습니다.예시크롬 브라우저에서 탭을 여러 개 열면, 각 탭이 별도의 프로세스로 동작하는 경우가 많습니다.멀티 프로세스의 특징- 프로세스 간 메모리 영역이 분리되어 있음- 하나의 프로세스가 죽어도 다른 프로세스에는 영향이 적음- 대신 프로세스 생성과 문맥 교환 비용이 큼멀티 스레드란?멀티 스레드는 하나의 프로세스 내부에서 여러 개의 스레드를 실행하는 구조입니다.멀티 스레드의 특징- ..

카테고리 없음 2026.02.08

[운영체제] 프로세스와 스레드

안녕하세요? 새로이 [운영체제] 섹션을 만들어 보았습니다. 컴퓨터 과학 지식 중 중요하다고 생각하는 파트이기 때문에 중요 개념들을 하나씩 정리하고 지식 체계를 쌓아가려는 목표가 있습니다. ㅎㅎ 첫번째로는 프로세스와 스레드에 대해서 정리해보겠습니다. 1. 프로세스란? 프로세스를 말하기 전에 프로그램이라는 용어에 대해서 살펴보겠습니다. 프로그램 :어떤 작업을 수행하기 위한 명령어들의 집합작업 : 프로그램과 프로그램이 처리할 데이터의 집합 (보통, 디스크에 저장되어 있다.)==> 운영체제에 실행을 요청하기 전의 상태 따라서 작업이 수행되기 위해서 1. 운영체제에게 실행을 요청 2. 운영체제는 해당 작업을 커널에 등록 3. 프로그램이 메모리에 적재되는 과정을 거치게 됩니다. 여기서, 커널에 등록된 작업 또는..

운영체제 2026.02.06

[Java] Exception(예외)

오늘은 자바에서 예외처리에 대해서 정리해보겠습니다. 1. Exception(예외)이란? 프로그램 실행 중에 정상 흐름을 방해하는 문제 상황을 객체로 표현한 것이 예외입니다.예외가 발생하면 JVM은 예외 객체를 던지고(throw),현재 실행 흐름을 따라가며 잡을 수 있는 곳(catch)을 찾는 과정을 진행합니다.아무도 못 잡으면 프로그램(해당 스레드)은 종료되고, 보통 스택 트레이스가 출력됩니다.예외는 크게 3가지 계열로 많이 말합니다.Error: JVM/시스템 레벨(OutOfMemoryError 등) → 보통 애플리케이션에서 복구 대상 아님Exception: 애플리케이션이 다루는 예외그 중 RuntimeException 계열은 Unchecked나머지는 Checked예외처리를 하는 3가지 방법1. try-..

Java 2026.02.05

[Java] equals() 와 hashCode()

1. equals()란? equals()란 객체를 비교하는 함수입니다. 두 객체가 내용이 같아면 true입니다.반면에 == 은 메모리 주소(참조)비교입니다. 두 객체가 완전히 똑같은 한 객체인지 비교하는 것입니다. String a = new String("hi");String b = new String("hi");System.out.println(a == b); // false (서로 다른 객체)System.out.println(a.equals(b)); // true (내용은 같음) 보통 문자열 비교는 equals()로 하는게 편합니다. 2. hashCode()란? 객체를 어떤 번호로 바꿔주는 함수입니다.HashMap, HashSet 같은 해시 기반 컬렉션이 번호로 빠르게 찾기가 유리한 이유입..

Java 2026.02.04