(Computer Science)
📍 디자인 패턴
싱글톤 패턴
객체의 인스턴스를 오직 하나만 생성하는 것.
ex. 데이터 베이스 연결 모듈
장점
단점
- 구현 코드가 많이 필요
- 내부 상태를 변경하기 어렵다
- 유연성이 떨어지는 편
👉🏻 다른 디자인 패턴
📍 네트워크
HTTP method
get, post, put, delete
- GET
"이 페이지를 보여줘" - 리소스 조회 시 사용
쿼리스트링이 노출되기 때문에 유의해야하며, 브라우저에 히토리에도 기록이 남는다.
- POST
주로 리소스를 생성할 때 사용한다. (성공시 201)
데이터를 메세지 바디에 key-velue 형식으로 전달하기 때문에 (외부에 노출 X) 보안상의 이점이 있다.
👉🏻 HTTP 메서드와 상태코드
Session과 Cookie의 차이
1) Session
- Cookie와 다르게 개인 아이디와 비밀번호 같은 웹사이트의 데이터는 Server에 저장되거나 웹브라우저의 캐시에 저장되어 브라우저가 닫히거나 서버에서 삭제 시 사라진다.
2) Cookie
- 사용자 정보를 유지할 수 없다는 HTTP고유의 특징을 극복할 수 있는 방법
- Cookie는 인터넷 사용자의 정보를 담은 임시 파일로써, Server가 아닌 Client에 텍스트파일로 저장되어있어 다음에 해당 웹서버를 찾을 경우 웹서버에서는 그가 누구인지 어떤 정보를 주로 찾았는지 등을 파악할 때 사용한다.(ex. 검색엔진)
- 주로 사용자 추적, 로그인 상태 유지, 사용자 환경 설정 저장 등과 같은 목적으로 사용됩니다.
🤓 로그인 시, 세션에 키 값을 저장. 이를 통해 로그인을 유지하고 필요할 경우 사용자의 데이터를 조회할 수 있다. 쿠키를 통해 로그인의 상태를 유지.
📍 API
HTTP 메서드를 통해 명령을 요청하면 Spring Boot의 controller는 해당 URL에 대한 요청을 받고, service를 통해 repository에서 필요한 데이터를 꺼내 반환합니다. 반환된 값을 JSON(또는 XML)형식으로 클라이언트에 전달합니다.
- controller는 받은 요청을 처리하기 위해 서비스를 호출하고 서비스로 부터 반환받은 정보를 다시 클라이언트로 반환하는 역할을 합니다.
- service는 컨트롤러가 너무 많은 역할을 하지 않도록 비즈니스 로직을 구현합니다.
- SOLID의 단일 책임 원칙에 준수.
- JSP : HTML 코드에 자바 코드를 사용해 동적 웹 페이지를 생성
- Servlet : 자바에서 HTML 코드를 사용