전체 글
-
3. Backend Language, Restful, FrameworkProgramming/BackEnd 2020. 5. 11. 21:26
HTTP 패킷은 크게 보면 헤더와 바디로 구성되어 있다. 바디에는 실제 데이터가 담겨 있고, 헤더에는 바디에 담겨 있는 데이터에 대한 설명이 들어있다고 생각하면 쉽다. HTTP 패킷을 택배상자에 비유할 수 있다. 택배상자 안 에는 실제 내용물이 들어가고, 상자 겉표지에는 보내는 사람, 받는 사람, 어떤 택배인지, 보내는 날짜 등등 정보가 적혀있다. Contents-Type이 text인지 file인지, 보내는 측 IP는 어디인지, 받는 측 (서버)의 IP는 어디인지 등 이러한 정보가 헤더에 적히게 된다. 이 HTTP 패킷을 주고받는 방법에는 여러가지가 있는데 대표적으로 GET방식과 POST방식이 있다. GET 방식은 쿼리스트링으로 데이터를 주고받고, POST방식은 Body나 Form으로 주고 받는다. 쿼리..
-
OAuth / JWTProgramming/BackEnd 2020. 5. 11. 15:50
JWT (JSON Web Token) JWT 구성 Header는 토큰의 타입과 해시 암호화 알고리즘으로 구성되어 있습니다. Payload는 claim 정보를 포함하고 있습니다. userId, expire, scope 등이 여기에 해당합니다. 마지막으로 Signature는 secret key를 포함하여 암호화되어 있습니다. Base64 방식으로 인코딩한 Header, Payload, Secret Key를 더한 후 서명됩니다. 최종적인 결과 : Encoded Header + . + Encoded Payload + . + Verify Signature Header, Payload는 인코딩될 뿐(16진수로 변경), 따로 암호화되지 않습니다. 따라서 JWT 토큰에서 Header, Payload는 누구나 디코딩하여..
-
HTTP 패킷 / 메소드 / 상태코드와 메세지Programming/BackEnd 2020. 5. 11. 14:31
HTTP 란? 메세지의 구조 및 클라이언트와 서버가 메세지를 어떻게 교환하는 지에 대해 정의 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜 애플리케이션 레벨의 프로토콜로 TCP/IP위에서 작동 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response) 80번 port 이용 HTTP 패킷 구조 클라이언트가 서버로 요청을 했을때, 보내는 데이터를 HTTP 패킷이라 표현한다. HTTP 프로토콜을 쓰므로, 앞에 HTTP가 붙고 인터넷을 통해 보내는 데이터를 패킷이라 표현하므로, HTTP패킷 이라 부른다. HTTP패킷의 구조는 크게 헤더 와 바디로 나뉘어진다. 헤더에는 7가지 HTTP 메서드 방식중 무엇을 썻는지, 클라이언트의 정보, 브라우저 정..
-
-
DBMS가 Sever-Client 구조를 취하게 된 이유Programming/BackEnd 2020. 5. 3. 20:19
과거의 서버-클라 구조에서는 서버와 DB가 따로 분리되어 있지 않았다. DataBase의 크기가 커지게 되면, 트래픽을 분산시키기 위해 동일한 시스템의 서버와 DB를 '복사 붙여넣기'하듯 확장시켜야 한다는 의미이다. 크레이지아케이드를 생각해보면 해피서버와 드림서버가 있는데 이는 위와 같은 구조를 취하고 있다고 생각할 수 있다. 해피서버와 드림서버는 동일한 시스템 구조를 갖고 있지만 별도의 DataBase를 갖고 있었기 때문에 두 서버의 사용자는 만날 수 없었던 것이다. 즉, 해피서버의 유저는 드림서버에 존재하지 않는 유저이다. 이 때, 동일한 시스템의 서버와 DB를 여러 개로 계속 확장시키는 것은 비효율적이라는 생각을 할 수 있다. 이러한 비효율성으로 인해 최근에는 커다란 DB서버 1개를 구축하고 여러 ..
-
Mysql Workbanch vs PhpMyAdminProgramming/BackEnd 2020. 5. 3. 20:03
Mysql Workbanch는 Mysql클라이언트 프로그램으로서 Mysql DB서버에 접속하는 것이다. PhpMyAdmin은 로컬환경에서 웹을 통해 Mysql DB서버에 접속하는 방식이다. Mysql Workbanch를 사용할 때는 ip주소, Port번호, 사용자 이름, 비밀번호 등을 설정해서 권한을 얻어야 접속이 가능하다. 이는 외부에서도 Mysql서버에 접속할 수 있기때문이다. PhpMyAdmin은 로컬환경에서 DB에 접속하는 것이다. 따라서 워크밴치와 같이 외부에서 접속하는 것이 아니기 때문에 IP주소와 포트 비밀번호 등을 따로 설정하지 않아도 되는 것이다. Mysql Workbanch에서 로컬IP로 접속하는 것과 같은 원리이다.
-
[Linux] Ubuntu 업데이트 서버 연결 에러 (apt-get update 에러)Programming/BackEnd 2020. 5. 2. 20:00
https://notpeelbean.tistory.com/entry/linux-Ubuntu-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8-%EC%84%9C%EB%B2%84-%EC%97%B0%EA%B2%B0-%EC%97%90%EB%9F%AC-aptget-update-%EC%97%90%EB%9F%AC [Linux] Ubuntu 업데이트 서버 연결 에러 (apt-get update 에러) Q : 상황 사용 버전 : Ubuntu 12.04.2 LTS 서버 윈도우 상에서 VMPlayer를 이용하여 우분투를 설치하였고 네트워크는 NAT 외부접속을 위한 NAT Setting을 마친 상태이다. apt-get install을 통한 ssh 등은 잘 설치.. notpeelbean.tistory.com h..
-
패키지 관리자란?Programming/BackEnd 2020. 5. 2. 19:24
패키지관리자는 리눅스에서 소프트웨어 패키지 설치를 간편하게 할 수 있도록 도와주는 명령어 인터페이스 입니다. 대표적으로 RedHat(레드햇) 계열의 Cent OS에서는 YUM(yellow dog, Updater, Modified)이 있으며, Debian계열의 Ubuntu 에서는 APT(Advanced Packaging Tool)가 존재합니다. yum 은 RPM 기반의 패키지 자동 업데이터이자 설치/삭제 도구입니다... apt-* 는 DEB (데비안 또는 우분투) 기반의 패키지 자동 업데이터,설치,삭제 도구입니다.. 이런것을 쓰면 좋은 점은 원하는 패키지를 설치하기 위해 패키지 웹사이트 주소를 검색하고 들어가고 다운받고 하는 과정이 필요없고요 의존성이 걸려있는 패키지들 또한 한번에 찾아서 설치를 해줍니다...