전체 글

프리온보딩 챌린지 사전과제를 수행하다가 궁금해졌다. 낙관적 락을... 락이라고 부를 수가 있나? 그래서 찾아봤다. 낙관적 락을 락이라고 부르는 이유. 1. 낙관적 락이란? 데이터를 수정할 때 버전을 확인하여 충돌 여부를 확인하는 방법으로, 동시에 같은 데이터를 수정할 가능성이 낮을 때 사용한다. 충돌이 발생하면 롤백 후 별도의 작업을 수행해주어야 한다. 한 마디로 충돌 발생 여부를 감지하여, 충돌이 발생하면 그에 따른 처리를 해주는 방식이다. 그러니까 낙관적 락에는 락이 없다. 2. 근데 왜 락이라고 부를까? 낙관적 락은 실제로 락을 걸지 않는다. 하지만 락을 적용한 것과 비슷한 결과를 낸다. 락은 데이터에 대한 접근을 제한하여, 동시성을 제어한다. 낙관적 락은 접근 제한을 걸지는 않지만, '충돌을 방지..
이번 주에는 스터디에서 Spring 관련 모의면접을 진행했다. 팀 공용 노션에도 정리되어 있긴 하지만, 답변자별로 정리되어 있어서 스터디원들과 내가 받았던 질문과 그에 대한 답변을 주제별로 간단하게 정리해봤다 :) 틀린 부분에 대한 지적은 언제나 환영합니다🫶 1. DI / IoC 👉 DI란? Dependency Injection의 약자로, 의존관계 주입을 의미한다. 클라이언트가 사용하는 인스턴스를 외부로부터 주입받아서 사용하는 것을 DI라 한다. 👉 의존관계 주입의 장점 클라이언트 코드의 수정 없이 구현체를 갈아끼울 수 있기 때문에, 코드의 유지보수성이 증가한다. 👉 Spring에서 의존관계를 주입하는 3가지 방법 1. 생성자 주입: 생성자를 이용해서 의존관계를 주입하는 방법으로, 구현체가 반드시 필요하..
(1) HTTP란? Hypertext Transfer Protocol은 텍스트 기반의 통신 규약으로, 서버와 클라이언트 사이에 데이터를 주고받을 수 있는 프로토콜이다. TCP/IP를 기반으로 동작하며, 80번 포트를 사용한다. Hypertext, 즉 링크가 포함된 문서 말고도 텍스트, 이미지, 영상, JSON 등 거의 모든 형테의 데이터를 전송할 수 있다. 가장 큰 특징으로는 비연결성(Connectionless)과 무상태성(Stateless)이 있다. (2) 무상태(Stateless) HTTP는 상태를 유지하지 않는 stateless한 프로토콜로, 서버는 클라이언트의 상태를 저장하지 않는다. 이 말인 즉슨, 이전에 보냈던 request나 이전에 응답한 response에 대해 전혀 기억하지 않으며, 클라이..
당연히 네이버 화면이 뜬다. 하지만 어떤 과정을 통해서 네이버 화면이 띄워지는지는 모르는 사람이 더 많을 것이다. 그렇다면 웹 브라우저는 어떤 원리로 네이버 화면을 찾아서 띄워주는 걸까? (1) 도메인 네임을 웹 서버의 IP주소로 변환 네이버의 홈 화면을 사용자에게 보여주고 싶다면 무엇이 필요할까? 네이버 홈 화면의 HTML 파일, CSS 파일, 스크립트 파일, 이미지 파일... 필요한 건 많은데 설치될 때부터 이걸 갖고있는 브라우저는 없을 것이다. 이런 정보들은 네이버의 웹 서버에 존재하기 때문에, 브라우저는 네이버 웹 서버와 통신하여 필요한 정보들을 받아와야 한다. 그럼 네이버의 웹 서버는 어떻게 찾을까? 우리가 길을 찾을 때 주소를 통해서 찾듯 컴퓨터도 각자 주소를 갖고 있는데, 바로 IP주소이다...
인프런 김영한님의 스프링 MVC 1편 강의 내용을 바탕으로 작성한 글입니다. 1. 서블릿 등록하기 package hello.servlet; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @ServletComponentScan // 서블릿 자동 등록 @SpringBootApplication public class ServletApplication { public static void main(String[] args) { S..
인프런 김영한님의 스프링 MVC 1편 강의 내용을 바탕으로 작성한 글입니다. 이전 글에서 클라이언트의 요청을 처리해주는 웹 애플리케이션 서버에 대해 아주 간단하게 알아보았다. 그렇다면 웹 애플리케이션 서버는 무슨 일을 할까? 클라이언트가 아래와 같은 요청을 보내왔다고 생각해보자. POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=kim&age=20 대충 이름이 kim이고 나이가 20세인 회원의 정보를 등록해달라는 요청이다. WAS는 이 요청을 처리하기 위해 아래의 업무들을 전부 처리해주어야 한다. 클라이언트와의 소켓 연결 HTTP 요청 메세지 파싱해서 읽기 매핑 정보 확인 Cont..
gorapaduckoo
진화의 돌