
OSI 7계층과 TCP/IP 5계층은 네트워크 통신이 일어나는 과정을 설명하는 모델이다. OSI 7계층이 이론적인 접근이라 하면 TCP/IP는 실용적인 접근이라 할 수 있다. OSI 7계층 컴퓨터 네트워크 통신이 일어나는 과정을 설명하는 표준 참조 모델이다. 각 통신

인터넷(inter-network에서 유래)이란 데이터를 전달해주는 망으로 전 세계 컴퓨터를 하나로 연결해준다. 인터넷은 클라이언트-서버로 이뤄진 컴퓨터 네트워크들의 집합체이다. 인터넷의 물리 구조 Network Edge 인터넷에 접속하는 모든 기기(End Syst

서버는 사용자의 요청에 따라 서비스나 데이터를 제공하는 컴퓨터이다.클라이언트는 서버에 여러 요청을 보내고 서버는 이런 요청에 알맞은 응답을 반환한다.서버는 크게 정적 리소스를 처리하는 서버(Web Server)와 동적 리소스를 처리하는 서버(WAS)로 나뉜다.정적인 리

데이터베이스는 데이터를 효율적으로 저장, 관리, 검색할 수 있는 구조화된 저장소이다.데이터베이스를 사용하면 대량의 데이터를 체계적으로 관리하고 접근할 수 있다.DBMS는 데이터베이스를 운영하고 관리하는 소프트웨어이다.DBMS는 구조에 따라 여러 종류로 나뉘며, 일반적으

두 개 이상의 테이블에서 조건에 맞는 데이터를 조회하고 싶을 때 JOIN을 사용한다. 예시로 A와 B라는 테이블이 있을 때 A의 특정 조건과 B의 특정 조건을 둘 다 만족하는 데이터를 조회하는 경우 join을 사용한다. JOIN은 두 테이블의 데이터를 조건에 따라 결합

SOLID는 객체 지향 프로그래밍에서 유지보수성과 확장성을 높이기 위한 다섯 가지 설계 원칙을 의미한다.SRP(Single Responsibility Principle)는 하나의 클래스는 하나의 책임만 가져야 한다는 원칙이다.하나의 객체가 여러 책임을 갖고 있으면, 각

IoC(제어의 역전) 제어의 역전(Inversion of Control)에서 '제어'란 특정 객체의 실행 흐름과 관련이 있다. 객체를 언제 생성하고, 어떻게 사용하며, 언제 해제할 지 등을 기존에는 개발자가 관리했어야 했다. 하지만 이러한 부분들을 Spring이 담당하

은행에서 돈을 이체하는 과정이 일어나려면 사용자 A의 계좌에서는 돈을 빼고 그 돈을 B의 계좌에 넣어줘야 한다. 출금과 입금 중 무엇 하나라도 잘못되면 이체라는 결과물은 바르게 일어나지 않는다.롤백이란 트랜잭션 과정 중에 실행할 수 있는 명령어로 실행 시 해당 트랜잭션

클라이언트로부터 Http 요청이 들어오고 스프링 부트에서 실행되는 내장 서버(톰캣)가 요청을 받고 적절한 서블릿으로 전달한다.Dispatcher Servlet(Front Controller)에서 모든 요청을 받아서 각 요청에 맞는 컨트롤러로 요청들을 분담한다.요청들을
좋아요 알림을 구현하는 과정에서 다음과 같은 요구사항이 있었다.좋아요가 연속적으로 들어올 경우, 매번 알림을 보내지 말고일정 시간 동안 좋아요 개수를 집계한 뒤“좋아요 n개가 추가되었습니다” 형태로 하나의 알림만 전송해야 한다.이를 위해 Redis를 사용해 좋아요 수를
애플리케이션이 발전하면서 DB 스키마도 계속 변경된다. 협업을 하다보면 이러한 스키마 수정 값들이 제대로 반영되지 않아 문제가 발생할 수 있다.테이블 추가, 컬럼 변경, 인덱스 추가 등의 스키마를 코드처럼 버전 관리하는 것이 DB 마이그레이션이다."DB 변경 이력을 G