본문 바로가기

TIL62

Code States 64일차 - [Git] 브랜치 관리와 고급 기능 Chapter - Git Branch 브랜치란? 브랜치는 독립적으로 어떤 작업을 진행하기 위한 개념이다. 개발을 하다 보면 한 페이지 안의 여러 기능을 따로 구현하기 위해, 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 브랜치 기능을 활용하면, 코드를 통째로 복사한 후 원래 코드가 변경될 우려 없이 독립적으로 개발할 수 있다. 다시 말해, 각각의 브랜치는 다른 브랜치의 영향을 받지 않기 때문에, 여러 작업을 동시에 진행할 수 있다. 브랜치의 장점 한 소스코드에서 동시에 다양한 작업을 할 수 있게 해준다. 소스코드의 한 시점과 동일한 상태를 만들고, 브랜치를 넘나들며 작업을 수행할 수 있다. 각각의 브랜치에서 생긴 변화가 다른 브랜치에 영향을 주지 않고 독립적으로 코딩을 진행할 수 있다. 나누어진 브.. 2021. 10. 28.
Code States 63일차 - [네트워크] 심화 Chapter - 인터넷 프로토콜 IP와 IP Packet 컴퓨터에 IP 주소를 부여하여 통신을 한다. IP는 지정한 IP 주소(IP Address)에 패킷(Packet)이라는 통신 단위로 데이터 전달을 한다. IP 패킷에는 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다. 패킷 단위로 전송을 하면 목적지 IP에 도달하기 위해 서로 데이터를 전달한다. 서버에서 데이터를 전송받는다면 서버도 응답을 돌려줘야한다. 서버도 IP 패킷을 이용해 클라이언트에 응답한다. IP 프로토콜의 한계 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 비신뢰성 중간에 패킷이 사라질 수 있음 패킷의 순서를 보장할 수 없음 TCP vs UDP TCP 프로콜은 IP 프로토콜보다 더 높은 게층에 존재하기 때문.. 2021. 10. 27.
Code States 62일차 - [컴퓨터공학] 기초 Chapter - 가비지 컬렉션 1. 가비지 컬렉션은 무엇인가? 가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것이다. 이 기능을 가진 언어는 자바, C#, 자바스크립트 등이 있다. 2. 대표적인 가비지 컬렉션의 방법은 무엇인가? 트레이싱 : 한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep방법이다. 객체에 in-use flag를 두고, 사이클 마다 메모리 관리자가 모든 객체를 추적해서 사용중인지 아닌지를 표시한다. 그 후 표시되지 않은 객체를 삭제하는 단계를 통해 메모리를 해제한다. 레퍼런스 카운팅 : 한 객체를 참조하는 변수의 수를 추적하는 방법이다. 객체를 참조하는 변수는 처음에는 특정 메모리에 대해 레퍼런스.. 2021. 10. 26.
Code States 61일차 - [컴퓨터공학] 기초 문자열 유니코드는 무엇인가? 유니코드는(Unicode)는 유니코드 협회(Unicode Consortium)가 제정하는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 이 표준에는 ISO 10646 문자 집합, 문자 인코딩, 문자 정보 데이터베이스, 무자를 다루기 위한 알고리즘 등을 포함하고 있다. 유니코드가 탄생하기 이전에는 같은 한글이 적힌 텍스트 파일이라도 표현하는 방법이 제각각이었다. 어떤 파일이 지원하지 않는 다른 인코딩 형식으로 저장되어 있는 경우에는 파일을 제대로 불러올 수 없었다. 기본적으로 유니코드의 목적은 현존하는 문자 인코딩 방법을 모두 유니코드로 교체하는 것이다. 인코딩(부호화)이란? 인코딩은 어떤 문자나 기호를 컴퓨터가 이용할 수 있는 신호.. 2021. 10. 25.
Code States 60일차 - [인증/보안] 기초 OAuth 2.0 웹이나 앱에서 흔히 볼 수 있는 소셜 로그인 인증 방식은 OAuth 2라는 기술을 바탕으로 구현된다. 전통적으로 직접 작성한 서버에서 인증을 처리해주는 것과는 달리, OAuth는 인증을 중개해주는 메커니즘이다. 보안도니 리소르에 액세스 하기 위해 클라이언트에게 권한을 제공하는 프로세르를 단순화 하는 프로토콜이다. 즉, 이미 사용자 정보를 가지고 있는 웹 서비스(GitHub, google, facebook 등)에서 사용자의 인증을 대신 해주고, 접근 권한에 대한 토큰을 발급한 후, 이를 이용해 내 서버에서 인증이 가능해 진다. OAuth가 모든 것을 해결해주는 솔루션은 아니다. 여전히 사용자 정보가 내 서버에 저장되는 것은 변함이 없다. OAuth는 인증(Authentication)을 다.. 2021. 10. 22.
Code State 59일차 - [인증/보안] 기초 Token-based Authentication (토큰기반 인증) 토큰기반 인증은 왜 쓰고, 그리고 언제 쓸까? 세션 기반 인증은 서버(혹은 DB)에 유저 정보를 담는 인증 방식이었다. 서버에서는 유저가 민감하거나 제한된 정보를 요청할 때마다 유저에게 정보를 줘도 되는지 확인하기 위해 가지고 있는 세션 값과 일치하는지 확인한다. 매 요청마다 데이터베이스를 살펴보는 것이 불편하고, 이 부담을 덜어내고 싶다면 토큰 기반 인증 중 대표적인 JWT(JSON Web Token)이 있다. JWT에 알아보자. 클라이언트에서 인증 정보 보관하기 클라이언트에서 인증 정보를 보관하는 방법으로 토큰 기반 인증이 고안되었다. 클라이언트가 토큰을 가지고 있다면 보통의 다른 유저들과는 다르게 서버에서 제공하는 다양한, 더 프리미.. 2021. 10. 21.