RESTful API 6가지 제약 조건 REST이란? Representational State Transfer의 약자로 로이필딩에 의해 만들어졌습니다. 웹 서버에서에서 사용하는 것으로 애플리케이션 사이의 결합도를 낮춰 설계하는 아키텍쳐 스타일입니다. 즉, 결합도를 낮춰 서버 / 클라이언트가 별도로 구축되고 결합할 수 있게 하는 것이다. 이러한 결합도를 낮추기 위해 6가지의 제약 조건을 가지고 있으며 제약 조건을 잘 지켜야 RESTful하다고 할 수 있습니다. RESTful API 제약조건 Client-Server 이 조건의 기본 원칙은 관심사의 명확한 분리입니다. 사용자들에게 제공하는 Interface인 User Interface와 데이터 스토리지(ex. DB), 알고리즘 등 서버 내부의 작업을 분리함으..
분류 전체보기
내가 꿈꾸는 프로그래머로서의 삶 프로그래머를 꿈꾸게 된 계기가 무엇일까? 초심으로 돌아가 내가 꿈꿨던 프로그래머로서의 삶을 생각하면서 글을 작성해보겠습니다. 또한, 우아한테크코스를 진행하면서 새롭게 바뀌고 추가된 제가 꿈꾸는 프로그래머로서의 삶도 녹여내 보도록 하겠습니다. 호기심을 모험심으로 '호기심을 통해 아이디어가 생겼을 때 바로 시작할 방법은 무엇이 있을까?'라는 질문의 답을 프로그래밍을 선택하였고 프로그래머의 삶을 시작하게 됐습니다. 프로그래밍의 세계에 들어오면서 많은 호기심이 생겼지만 아이디어를 실제로 구현하는 건 쉽지 않았습니다. 그러나 프로그래밍 세계에 들어온 지 약 1년이 지난 지금, 호기심을 모험심으로 만들어 구현하는 재미를 느끼고 상상만 했던 아이디어를 직접 구현했습니다...
CORS에 대해서 알아보자. CORS란? Cross-Origin Resource Sharing 교차 출처 자원 공유 여기서 자원, 공유에 대한 단어의 뜻은 잘 알고 있지만 교차 출처라는 단어가 어색하게 느껴질 수 있습니다. 지금부터 교차라는 단어보다는 다른이라는 단어로 변경해서 이야기를 해보도록 하겠습니다. 즉, 다른 출처 자원 공유라는 것입니다. 간단하게 이야기 하면 다른 출처에 대한 자원의 공유에 대해 어떻게 해야 하는지에 대해 나타내는 것이라는 것이라고 할 수 있습니다. 출처(Origin)란? 아래와 같은 URL이 있다고 해봅시다. https://github.com/woowacourse/jwp-was/issues?q=럿고&sort=oldest#foo URL은 내부적으로 구성요소가 또 존재합니다. 이..
간단하게 2진수, 8진수, 10진수, 16진수로 변환하기 Number.toString() Number.prototype.toString() Number 객체를 문자열로 변환해서 반환하는 메서드입니다. 매개변수 중 Optional로 redix를 입력할 수 있습니다. 수의 값을 나타내기 위한 사용되기 위한 기준을 정하는 2 ~ 36사이의 정수라고 하는데, 즉 진수를 나타내는 기수의 값이라고 생각하면 될거 같습니다. redix 값을 지정하지 않는다면 10진수가 defualt로 설정되게 됩니다. 10진수를 2진수로 변환하기 const dec = 123; console.log(dec.toString(2)); // 1111011 10진수를 8진수로 변환하기 const dec = 123; console.log(dec..
[프로그래머스] 상위 n개 레코드 문제 설명 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. NAME TYPE NULLABLE ANIMAL_ID VARCHAR(N) FALSE ANIMAL_TYPE VARCHAR(N) FALSE DATETIME DATETIME FALSE INTAKE_CONDITION VARCHAR(N) FALSE NAME VARCHAR(N) TRUE SEX_UPO..
개념 모델 vs 논리모델 vs 물리모델 개념 모델이란? 데이터 모델의 첫 단계로 고객의 요구사항을 수집, 분석해 전체적인 모양을 결정짓습니다. 이 단계에서는 전체 모델에서 중요한 골격이 되는 엔티티와 관계 위주로 모델링이 됩니다. 엔티티, 관계 위주의 모델링을 통해 전반적인 골격을 파악하는데 중점을 두기 때문에 데이터 모델의 속성 표현을 불필요할 수도 있습니다. 사용자가 요구하는 데이터의 범위 및 구조를 용이하게 확인이 가능하며 사용자와 함께 검토를 통해 신규 시스템에 해당 요구사항을 반영할지 여부를 결정하여 개발범위를 정하는데도 도움을 줍니다. 논리 모델이란? 데이터베이스 설계 프로세서의 Input으로 비지니스 정보의 구조, 규칙등을 명확하게 표현해야 합니다. 즉, 데이터 모델링이 최종적으로 완료되어 ..
인증(Authentication) vs 인가(Authorization) 인증(Authentication)이란? 사용자의 신원을 증명하는 것 예를들어 로그인하는 과정을 인증이라고 한다. 로그인을 하게 되면 JWT나 Session을 이용해 인증을 유지한다. 인증 방식 전통적인 방법으로는 사용자명(Principle), 비밀번호(Credential)로 인증하는 Credential 기반 인증 방식 OTP와 같이 추가적인 인증방식을 도입해 한번에 2가지 방법으로 인증하는 이중 인증 방식 토큰 인증 소셜 미디어를 사용하는 OAuth2 인증방식(토큰인증 방식 사용) OAuth 인증 종류 인가(Authorization)란? 특정 리소스에 접근할 수 있는 권한을 부여하는 것 예를들어 사용자 등급(일반, VIP, 관리자)에..
HTTP Status HTTP Status란? 클라이언트와 서버가 요청과 응답을 주고 받을 때 서버의 응답을 알려주는데 사용합니다. 결과 내용을 body에 상세하게 적어줄수도 있지만, 시간 비용이 많이 들며 또한 클라이언트 개발자와 서버 개발자 간의 메시지 포멧이 다양하기 때문에 소통에 문제가 생길 수 있습니다. 이러한 문제점을 해결하기 위해 숫자로 결과가 어떤지에 대해 표준약속을 정해놓았으며 이를 HTTP Status(상태코드)라고 합니다. Informational 1xx 정보를 응답하는 것이며, 요청을 받고 프로세스를 계속 진행합니다. 100 Continue 임시적인 응답으로 지금까지의 요청이 문제가 없고 클라이언트에게 계속해서 요청을 하거나 이미 요청이 완료된 경우에는 무시해도 됨을 의미합니다. 클..
HTTP Method HTTP 메소드란? The Method token indicates the method to be performed on the resource identified by the Request-URI. The method is case-sensitive. 클라이언트가 웹서버에서 사용자 요청의 목적 및 종류를 알리는 수단이다. 즉, 자원의 행위를 표현하는 것이다. 요청 메시지의 첫째줄에 위치한다. Request-Line = Method SP Request-URI SP HTTP-Version CRLF GET 서버에게 해당 리소스를 조회할 때 사용 즉, 서버의 Resource를 읽는다고 생각하면 될거 같습니다 GET /users/1 HTTP/1.1 200 OK { "name": "rutgo..
HTTPS란? HTTP란? HyperText Transfer Protocal 웹 환경에서 브라우저와 웹 서버가 통신하는 방법 동작 방법 URL 주소를 입력 DNS 서버에 웹 서버의 호스트 이름을 IP 주소로 변경을 요청한다. 웹 서버와 TCP 연결 시도 서버에게 메서드 명령을 전송한다. 서버가 응답을 보낸다. 서버와 클라이언트간의 연결을 해제하다. 웹 브라우저가 응답을 출력한다. HTTPS란? Hypertext Trnasfer Protocol Secure HTTP의 치명적인 단점인 보안을 보완하기 위해 나왔다. HTTP의 보안적인 문제는 통신할때 데이터가 암호화가 되지 않고 생 날것 그대로 전송되어 집니다. 해커가 중간에 데이터를 도청하게 된다면 중요정보(로그인 정보 등)을 탈취할 수 있다는 의미입니다...