본문 바로가기

분류 전체보기

(49)
RESTful API는 어떻게 만들 수 있을까? RESTful API를 설명하기 전에 REST의 개념과 속성에 대해 학습하고 넘어가야한다. REST란? Representational State Transfer의 약자로, 현재 웹의 아키텍처 스타일이다. 따라서 어떠한 프로토콜이나 표준이 아니라 아키텍처 원칙들이 모여있는 말 그대로 아키텍처 스타일이다. 아키텍처 스타일은 소프트웨어를 설계할 때 이 아키텍처 스타일에 해당하는 규약들을 적용해가며 설계하는 것이다. REST는 로이 필딩이 박사학위 논문으로 정의하였다고 한다. REST의 구성 1. 자원 (Resource) REST에서 가장 중요한 단어이다. REST에서는 각각의 자원을 이름을 붙여 구분하고 이 이름은 URI로 표현한다. 자원을 URI를 붙여 간단히 가리킬 수 있다. 예를 들어, 어떠한 게시판의 ..
HTTP 메시지의 구조 HTTP 메시지의 구조로 요청과 응답에 각각 뭐가 있는지 살펴보자. 전체적으로 간단히 보면 이렇게 생겼다. 여기서 스타트 라인은 요청메시지일 경우 요청라인, 응답메시지일 경우 스테이터스라인이다. HTTP 요청메시지 요청메시지의 예를 보면서 구조를 나눠보자. 1) 요청라인 요청 라인 - GET / HTTP/1.1 메서드(GET), 요청 URI(/), 프로토콜 버전(HTTP/1.1) 로 구성된다. 쿼리 파라미터가 URI에 포함되는 경우도 요청 URI에 포함된다. (예- GET /search?title=title-test&author=olivejua HTTP/1.1) 2) 헤더 헤더는 메시지의 바디에 대한 부가적인 정보, 즉 메타 데이터를 표현한다. 클라이언트와 서버의 헤더를 보고 메시지에 대한 동작을 결정한..
웹 애플리케이션의 구조와 흐름 Spring Boot가 잘 되어 있어서 잘 이용만 한다면 깊게 알지 않아도 애플리케이션을 만들 수는 있지만 문제해결에 있어서 개념을 알고 있어야 더 빠른 해결점에 갈 수 있을 것이다. 웹 사이트에 접속을 마음 먹은 순간부터 요청과 응답의 연속이다. 웹 브라우저에서 URL을 입력하여 웹 페이지를 요청하고 웹서버는 요청메시지대로 처리 후 응답 메시지를 전송한다. 먼저 요청부터 응답하는 지점까지 전체적인 그림을 그려봤다. Web Application의 요청부터 응답까지의 흐름 웹 서버(Web Server)는 무슨 역할을 하지? 여기서 웹 서버는 웹 브라우저와 통신할 수 있도록 소켓 연결 등의 네트워크 처리를 한다. 그리고 브라우저에서 보낸 요청 메시지를 해석하고 정적 리소스로 응답해줄 수 있으면 웹 애플리케이..
[웹을 지탱하는 기술] JSON JSON : JavaScript Object Notation의 약자 그 이름이 나타내는 바와 같이 JavaScript 의 기법으로 데이터를 기술할 수 있는 점이 가장 큰 특징입니다. 웹 서비스에서 브라우저가 JavaScript를 실행할 수 있어 호환성이 좋고 XML과 비교하면 데이터표현이 간결하다는 등의 이점이 있어 Ajax 통신에서 데이터 포맷으로 활용되고 있습니다. 미디어 타입 : application/json 자료형 : JSON에 마련되어 있는 자료형에는 다음의 6가지가 있습니다. object array string number boolean null object 이름과 값의 집합 이름과 값의 세트를 오브젝트의 '멤버'라고 부름 JSON에서 멤버의 이름은 항상 문자열임 하지만 멤버의 값은 문자열, ..
메타데이터와 MIME미디어 타입 / XML과 HTML의 차이 WEB을 지탱하는 기술을 읽다가 갑자기 궁금해져서 정리하는 글 HTTP 헤더에 메타데이터, 미디어타입이 들어가는 건 알겠는데 둘의 차이가 뭘까? 찾아보니 메타데이터란, 데이터를 설명하는 데이터이다. 따라서 여기서 데이터(리소스라고도 함)란 HTML 문서 등 데이터를 표현하는 http 바디 부분에 해당함. 그리고 그것을 설명하는 부분을 메타데이터라고 지칭할 수 있다. 미디어타입이란, (여기서 MIME 미디어타입은 간단히 미디어타입이라고 부르자.) 바디의 형식이 어떠한 종류인가, 인코딩 설정 등을 정의 하는 부분이다. 따라서 Content-type, charset 등임. 메타에는 데이터를 설명하는 내용을 담고 그 안에 미디어 타입이 포함되어 있다. 하지만 위의 예시에서 설명해 주듯이 메타데이터는 미디어타입을..
warning: user.name has multiple values git bash에서 config user.name 설정을 하다가 잘못 설정을 하였다. 내가 했던 명령어 : $ git config --global user.name=" 원래 해야하는 명령어 : $ git config --global user.name "" 내가 했던 명령어로 작성하면 list에서 user.email= user.name== user.name== 이런식으로 나온다.... 그래서 뒤늦게 다시 설정하려고 원래 해야하는 명령어로 작성하였지만 이런 경고메시지가 뜬다. $ git config --global user.name "" warning: user.name has multiple values error: cannot overwrite multiple values with a single val..
git commit 하기 git status 상태 - Untracked files => **Untracked** (아직 commit에 넣어지지 않은 파일) - Changes not staged for commit => **Tracked** (commit에 넣어진 파일이지만 변경, 삭제된 파일) - Changes to be committed => **Staged** git add 이 명령어를 통하여 Untracked, Tracked 상태인 파일을 **Staged** 상태로 변경할 수 있다. - 특정 1개의 파일 추가 => git add - 특정 여러개의 파일 추가 => `git add ` - Untracked 상태를 제외한 파일만 추가 => `git add -u` - Unstaged 상태인 파일 모두 추가 => `git add ...
compile과 build의 역할 컴파일이란 우리가 작성한 소스파일을 컴퓨터가 이해할 수 있는 기계어로 변환을 해줘야 하는데 이 역할을 하는 프로그램이 컴파일이다. 만약 소스코드를 기계어로 변환하는 도중에 문법에 맞지 않아 변환을 못하는 경우 컴파일 에러가 발생한다. 자바의 경우 우리가 .java로 작성하면 컴파일 실행 후 바이트코드의 .class 가 생성된다. 빌드란 빌드는 소스코드를 실행가능한 소프트웨어로 만드는 전체의 과정이며 컴파일도 이 빌드의 과정 안에 속해있다. 빌드의 과정 : compile , testing, inspection, deploy 라는데... 이 과정은 더 알아봐야겠다. 만약 기계어로 변환이 된 후 명령에 따라 실행을 하는데 컴퓨터입장에서 이해할 수 없는 명령을 받았을 경우 빌드 에러가 발생한다.
내가 쓸 유용한 단축키 sout 작성 후 ctrl+space : System.out.println 단축키 ctrl+n : 에디터 안에 있는 '클래스'들을 보고싶을 때 리스트 켜주기 ctrl+space : 변수 입력시 입력하고자하는 단어 자동완성, 여러개일 경우 리스트 켜주기 alt+F7 : 클래스나, 메소드, 변수를 찾기, 현재 사용하고 있는 리스트 보여주기 ctrl+q : 해당 소스를 보고 싶다면 누르면 작은창이 뜸 ctrl+b : 해당 클래스나 메소드, 변수가 어딨는지 알려주기 ctrl+click : 그 쪽으로 넘어감 ctrl+F12 : 현재 편집 중인 파일로 넘어가고 싶다면 멤버에 대고 enter or F4 : 현재 클래스의 멤버리스트를 보여준다 shift+F6 : 한 변수를 쓰고있는 장소를 모두 이름변경할 수 있다. c..