HTTP 상태 코드
들어가기 전에 RESTFul API 설계를 위한 기본적인 상태 코드 상태 코드가 필요한 이유는 오류가 발생할 경우 서버에서 클라이언트에 응답하기 위해서이다. 코드 설명 100 (Continue) 서버가 요청의 초기부분을 수신하였고, 다음 요청을 기다리는 상태이다. 101 (Switching Protocols) HTTP -> HTTPS 프로토콜 전환이 발생했을 때 전환이 승인됨을 알려주는 응답이다. 200 (OK) 요청에 대해서 성공을 알려주는 응답이다. 201 (Created) 요청에 대해 새롭게 생성되었음을 알려주는 응답이다. (POST 응답으로 적합) 204 (No Content) 요청에 대해서 성공했지만, 클라이언트로 보내는 컨텐츠가 없음을 응답한다. 301 (Moved Permanently) 요청한 리소스에 새로운 URI 가 할당되어 있음을 알려주는 응답이다. 새로운 주소로 이동한다. 304 (Not Modified) 요청을 수행했...
스프링 프레임워크(Spring Framework)
스프링 프레임워크 스프링 프레임워크는 자바 개발을 편리하게 해주는 경량급 오픈소스 애플리케이션 프레임워크로, 개발에 필요한 기능들을 포괄적으로 제공한다. 스프링은 몇 가지 핵심 특징을 갖는다. POJO(Plain Old Java Object) 프레임워크라서 특정 라이브러리에 종속되지 않아 개발이 쉽고, AOP(Aspect Oriented Programming), 즉 관점지향 프로그래밍을 지원하며, DI(Dependency Inject) 의존성 주입도 지원한다. 무엇보다 IoC(Inversion of Control), 즉 제어의 역전을 지원해 제어권이 개발자가 아니라 프레임워크에 있다. 객체의 생성부터 생명주기까지를 프레임워크가 관리하고 제어하며, 이렇게 제어권이 스프링으로 넘어오기 때문에 DI나 AOP 같은 기능들이 가능해진다. 스프링 부트 스프링 부트는 스프링 프레임워크를 사용하는 프로젝트를 간편하게 설정할 수 있는 서브 프로젝트다. 내장 톰캣을 쓸 수 있어 번거로운 개발 환...
상호 배제 (相互排除, Mutex)
상호 배제 특정 공유 자원을 한 순간에 하나의 프로세스만 사용할 수 있을 때, 한 프로세스가 공유 데이터에 접근하는 동안 다른 프로세스는 그 데이터에 접근하지 못하게 막는 것을 상호 배제라 한다. 다중 스레드나 프로세스가 공유 자원에 동시에 접근하는 것을 막기 위한 개념으로, 주로 동기화 문제를 해결하는 데 쓰인다. 상호 배제는 임계 구역(크리티컬 섹션) 문제를 다루는데, 임계 구역이란 여러 스레드가 동시에 접근해서는 안 되는 코드 블록을 말한다. 임계 구역(Critical Section) 임계 구역은 프로그램 안에서 공유 자원(데이터 등)에 접근하는 코드 영역이다. 여러 스레드가 동시에 임계 구역에 들어가면 데이터 일관성 문제가 발생할 수 있다. 진입 섹션(Entry Section) 진입 섹션은 스레드가 임계 구역에 들어가기 전에 실행되는 코드다. 이 섹션에서 스레드가 임계 구역에 들어갈 수 있는지 확인하고, 상호 배제를 보장한다. 퇴장 섹션(Exit Section) 퇴장 섹...






