Computer Science

    [CS] 컴퓨터 공학 기초

    알아두면 좋은 내용이지만, 컴퓨터에 관심이 없거나 코딩짜는 것 밖에 알지 못한다면 결코 좋은자료가 못되어서 유튜브나 검색해서 더 좋은 자료를 보는게 맞는 것 같습니다. 관련 유튜브 영상 (말로만 설명해주시만 잘 설명해주어서 좋습니다) https://youtu.be/ABPOjjre0C8 문자열 유니코드라고 불리우는 인코딩 방식이 통일된 시대를 살아가고 있습니다. 문자열을 다루는 디테일한 방식에 대해 전부 알 필요는 없지만, 프로그래밍 언어마다 문자열을 다루는 자료형의 차이를 이해하기 위해 문자열을 다루는 기본적인 방식은 알고 있어야 합니다. 유니코드? 유니코드(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 ..

    [Server] OAuth 2.0

    코딩 공부하면서 가입해야하는 곳이 정말 많아서 귀찮을 수 있는데, 구글아이디 하나로 모든 것을 가입했습니다. 그래서 굉장히 편리하다고 느끼는데 그것에 관한 기술이 OAuth 2.0 기술입니다. 하지만 여전히 사용자 정보가 내 서버에 저장되는 것은 변함이 없습니다. OAuth는 인증(Authentication)을 다른 서비스에 맡길 뿐, 접근 권한 관리(Authorization)는 순전히 내 서버의 몫입니다. 그러므로, OAuth의 작동 방식을 알기 위해서는 기존 인증 방식에 대한 이해가 필수적입니다. 소셜 로그인 인증 방식은 OAuth 2라는 기술을 바탕으로 구현됩니다. 전통적으로 직접 작성한 서버에서 인증을 처리해주는 것과는 달리, OAuth는 인증을 중개해주는 메커니즘입니다. 보안된 리소스에 액세스하..

    [Server] 보안 인증 (Token-JWT)

    오늘 과제도 어려웠습니다. 확실히 이 부분이 제일 어렵다는 이야기를 들었는데 개념은 이해가 되지만 코딩구현에 대해 갈피를 못잡고 있는데, 이 부분을 이해하여 코드로 작성한다면 당장 보이는 산은 넘을 수 있다고 생각합니다. 세션 기반 인증은 서버(혹은 DB)에 유저 정보를 담는 인증 방식이었습니다. 서버에서는 유저가 민감하거나 제한된 정보를 요청할 때마다 "지금 요청을 보낸 유저에게 우리가 정보를 줘도 괜찮은가?" 를 확인하기 위해 가지고 있는 세션 값과 일치하는지 확인합니다. 매 요청마다 데이터베이스를 살펴보는 것이 불편을 해결하기 위해 토큰기반 인증 중 대표적인 JWT(JSON Web Token)이 있습니다. 클라이언트에서 인증 정보를 보관하는 방법으로 토큰기반 인증이 고안되었습니다. 클라이언트가 토큰..

    [Server] 보안 인증 기초 (HTTPS/Hashing/cookie/CSRF)

    보안 기초적인 개념에 대해서 배웠다. 크게보면 굉장히 쉽고 재미있지만 들어가면 들어갈수록 참 복잡하다. 코딩공부를 하면서 뭐든 배울 때 그런 느낌을 많이 받았다. 오늘 배운 내용은 군생활 하면서 한번쯤은 들어본 내용이지만 자세할수록 머리가 아프다. 오늘 이에 관한 과제도 했지만 정리는 양이 많고 어려워 우선 패스해야겠다.. HTTPS (Hyper Text Transfer Protocol Secure Socket layer) HTTP 프로토콜 내용을 암호화 하여 보안성이 추가한 형태로, HTTP 요청을 하면 클라이언트와 서버 사이에서 그대로 볼 수 있었지만, HTTPS는 암호화를 사용하여 보안성을 높임 인증서(Certificate) 데이터 제공자 신원 보장, 도메인 종속 도메인이 같아야만 서버에서 정보를 ..

    [Web Server] 기초

    오늘 공부하면서 제일 느꼈던 점은 여러 문서를 찾아보고 스스로 공부하는것이 코드스테이츠 방식이지만 어떤 하나를 구현해보는 것이 가장 좋은 것을 깨달았다. 앞에 내용들 솔직히 눈에도 안들어 왔지만 오늘 실습을 하면서 뒤에 공부 했던것이 조금씩 보이기 시작했다. 코드스테이츠 수업 방식이 흥미를 찾아주진 않아서 직접 스스로 깨닫는게 중요한거 같다. 공부에 무슨 흥미냐 할 수 있지만 적어도 나는 그게 필요한것 같다. 그렇기에 얼른 현업에서 많은 것을 보고싶다. CORS (cross origin resource sharing) 브라우저에서 크로스 도메인 요청은 기본적으로 제한되어있다. 웹 애플리케이션 고도화를 위해 개선 요청 했는데. 서버가 Allow한 범위에서는 허용하게 되었다. 서버에서 Allow 하는 조건들..

    [HTTP/네트워크] 실습 (REST API, Postman)

    CSR(Client Side Rendering)에서는 몇 가지의 메소드를 이용해 서버와 통신합니다. GET을 통해 웹 페이지나 데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할 수 있습니다. REST API에서 REST는 “Representational State Transfer”의 약자로, 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로써 처음 소개되었습니다. REST API는 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말합니다. REST API를 사용한다는 것은 REST 아키텍처의 제약 조건을 준수한다는 말입니다. 그리고 Postman은 앱으로 깔아서 쓰는게 편..

    [HTTP/네트워크] 기초

    클라이언트-서버 아키텍처 클라이언트(client, 손님)와 서버(server, 서빙하는 사람)라는 단어의 어원을 떠올리면, 보다 이해가 쉽습니다. 리소스에 접근하려는 앱은, 카페로 치면 손님과 같습니다. 손님은 아메리카노를 획득하기 위해, 리소스를 가지고 있는 점원에게 요청해야 합니다. 손님의 요청에 따라, 점원은 리소스를 담아 응답합니다. 이처럼 클라이언트와 서버는 요청과 응답을 주고 받는 관계입니다. 클라이언트-서버 아키텍처에서는 요청이 선행되고, 그 후에 응답이 옵니다. 요청하지도 않았는데, 응답이 오는 경우는 없습니다. 클라이언트처럼 사용자가 직접 눈으로 보고, UI를 클릭 또는 터치하는 등의 상호작용을 할 수 있는 앱을 주로 개발하면 프론트엔드 개발자라고 합니다. 반면, 사용자 눈에 보이지 않지..