목록전체 글 (305)
개발하고 싶은 초심자
✷ git & github 1. Git branch ① 브랜치 : 독립적으로 어떠한 작업을 진행하기 위한 개념. ⇒ 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에 여러 작업을 동시에 진행할 수 있다. ‣ 브랜치 기능의 장점 • 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해준다 • 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지않고 독립적으로 코딩을 진행할 수 있다. → 여럿이 동시에 작업을 할 때 다른 사람의 작업에 영향을 주고 받지 않도록 통합 브랜치에서 자신의 작업 전용 브랜치를 만들고, 각자의 브랜치에서 맡은 영역에 대한 작업 진행, 작업이 끝난 브랜치는 통합 브랜치에 병합하여 변경사항을 적용한다. ⇒ 독립적으로 특정 작업을 수행하여 그 결과를 하나로 모아가게 되어 작업 단..
✷ HTTP protocol ✷ OSI 7 Layers 1. 인터넷 프로토콜 ① IP(Internet Protocol)와 IP Packet → 클라이언트와 서버 사이의 수많은 노드들을 지나 데이터가 전달되어 통신하기 위한 규칙 ✷ 노드: 하나의 서버 컴퓨터 ① 클라이언트 패킷 전달 → IP는 지정한 IP Address에 Packet이라는 통신 단위로 데이터 전달을 한다. → IP 패킷에는 전송 데이터를 무사히 전송하기 위해 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다. 패킷 단위로 전송하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달하고, 이를 통해 정확한 목적지로 패킷을 전송할 수 있다. ② 서버 패킷 전달 → 서버에서 무사히 데이터를 전송받아 응답을 돌려줄 때 IP 패킷을 이용..
이틀 내내 혼자 공부하며 줌 세션을 듣는 챕터 공부를 했다. 운영체제와 그에 관련된 내용인 프로세스와 스레드, 가비지 컬렉션, 웹 캐시에 대한 내용을 학습했는데 처음에는 이걸 왜 알아야 할까?라는 의문이 많이 들었는데, 블로그에 내용을 정리해가며 학습하다 보니 결국엔 다 이어져 있는 기본적인 내용들이라는 것을 알게 되었다. 개인적으로는 section 1에서 변수나 할당을 먼저 가르쳐주기보다는 프로세스와 스레드에 대한 내용을 먼저 알려주었으면 가닥을 잡기가 편하지 않았을까 하는 생각이 들었다. 물론 변수와 할당에 대한 개념이 먼저 잡힌 후에 코플릿 문제들을 풀고 스프린트들을 진행하는 것이 부트캠프 특성상 시간이 많이 절약된 것은 사실이지만, 이런 내용들은 아주 기본적인 개념들이기 때문에 먼저 아 이런 거구..
1. 컴퓨터 공학 기초 ① 문자열 ‣ 유니코드(Unicode) → 유니코드 협회가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준. → 인코딩과 디코딩의 기준(문자열 세트 / 문자셋(charset))의 국제 표준. → 현존하는 모든 문자 인코딩 방법을 모두 유니코드로 교체하는 것이 유니코드의 목적이다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 문자를 다루기 위한 알고리즘 등을 포함하고 있다. ✷ 인코딩(Incoding / 부호화) : 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호로 만드는 것. → 신호를 입력하는 인코딩과 문자를 해독하는 디코딩을 위해서 미리 정해진 기준을 바탕으로 처리되어야 하는데, 이러한 기준을..
세션과 쿠키에 대한 개념 학습과 함께 세션을 이용한 인증 방법을 sprint로 구현하는 시간을 가졌다. 확실히 전 기수 수강생분들이 보안, 인증 파트가 제일 힘들고 어려웠다고 했었는데 그 말이 딱 맞는 것 같다. 설명을 듣는데 처음에는 이게 무슨 말인지 이해하는데에만 시간이 정말 많이 걸렸다. 그 부분은 스프린트를 진행하면서 조금의 힌트가 되고, 30% 쯤 해결이 된 것 같지만. 스프린트를 진행하면서 서버에서의 req.session과 클라이언트에서의 axios 라이브러리를 사용하는 것이 새로웠다. 해당 부분에 대한 설명을 유어클래스에서 보고 혼자서 블로그에 정리할 때는 사실 잘 정리가 되지 않았는데, 이번 페어 프로그래밍을 통해 페어에게 설명을 해주며 직접 구글링을 하다보니 정리가 잘 되는 듯한 느낌을 ..
1. 토큰(Token) : 유저 정보를 암호화한 상태로 담을 수 있고, 암호화했기 때문에 클라이언트에 담을 수 있다. ① 토큰 기반 인증(Token-based Authentication) : 기존의 세션 기반 인증은 서버(혹은 DB)에 유저 정보를 담는 방식이었고, 항상 요청이 들어올 때마다 DB를 살펴보아야 하는 부담을 클라이언트에게 넘겨줄 수 없을까?에서 고안되었다. → 클라이언트에서 인증 정보를 보관하는 방법으로 고안되었다. 클라이언트가 토큰을 가지고 있으면 서버에게 토큰을 보여주고, 다양한 기능들을 요청할 수 있다. ② JWT(JSON Web Token) : 대표적인 토큰 기반 인증. JSON 포맷으로 사용자에 대한 속성을 저장하는 웹 토큰. : 어떤 종류의 토큰인지, 어떤 알고리즘으로 암호화하는..
✷ javascript index.js 1. HTTPS(Hyper Text Transfer Protocol Secure Socket layer) : HTTP 프로토콜 내용을 암호화. → 상대적으로 HTTP 통신보다 안전하다. → 요청 내용을 한 번 암호화시키기 때문에(암호화된 데이터를 주고받기 때문에) 개인정보 등 중요한 정보가 유출되더라도 정확한 키로 복호화하기 전까지 어떤 내용인지 알 수 없음. ✷ HTTPS가 동작하는 방식 ‣ 인증서(Certificate) : 데이터를 제공한 서버가 정말 데이터를 보내준 서버인지 인증, 확인하는 용도. → 브라우저가 응답과 함께 전달된 인증서 정보를 확인할 수 있다. → 서버의 도메인 정보가 있어 데이터 제공자의 신원을 보장한다. ✷ 인증에서 데이터 제공자의 신원..
관련링크 1. 비교 연산자 : 특정한 범위 내의 데이터를 찾을 수 있음. ‣ 기본 구문 db.컬렉션이름.find({"필드":{"operator":"value"}}).pretty() ‣ 지정된 값이 같은지(equl) 아닌지(not equal) $eq $ne ✷ $eq는 연산자가 지정되어 있지 않은 경우 기본 연산자로 사용된다. ‣ 주어진 값보다 큰 지(greater than) 아닌지(less than) $gt $lt ‣ 주어진 값보다 크거나 같은지(greather than or equal to) / 작거나 같은지(less than or equal to) $gte $lte 2. 논리 연산자 : 데이터 검색을 보다 세분화 할 수 있음. $and 주어진 모든 쿼리절을 충족하는 도큐먼트 반환 $or 주어진 쿼리절..