CS/필수지식 3

인증(Authentication) 기본 개념 (Spring boot / Flask

Flask와 Spring boot 프로젝트를 진행하면서 회원가입/로그인 및 인증부분은 프로젝트 완성도 면에서 중요하다고 생각되어 이번기회에 이부분에 대해서 실제 서비스에서 사용되는 로직과 가깝게 구현할 수 있도록 공부를 진행중이다.  인증(Authentication) 기본 개념인증이란?👉 “이 사용자가 누구인지 증명하는 과정”(예: 로그인 → 사용자 정보를 확인하고 ‘누군지’ 알아내는 것) Authentication로그인처럼 "이 사람이 누군가?" 증명Authorization권한 검사 (예: 관리자인가 ??)Session서버에 저장하는 로그인 정보JWT (Token)클라이언트에 저장하는 로그인 정보 (stateless)OAuth2소셜 로그인 방식 (카카오, 네이버, 구글 등)HttpOnly 쿠키보안 강..

CS/필수지식 2025.04.10

Compiled language vs Interpreted language

오늘 회사에서 팀장님이 OJT 를 해주시는데, C, C++, Java. / Python, Javascript 의 차이에 대해서 물어보셨다. 다 아는 언어들인데, 막상 두가지 차이에 대해 답하려니까 쉽지가 않았다. 뭔가 strict한 언어와 유연한 언어로 나뉜거 같기도 하고, 또 C가 묶여있는 것을 보니 객체지향 절차지향으로 나뉜거 같지는 않고,,, 결국 답을 못했고, 이 둘의 차이는 컴파일언어와 인터프리트 언어이다. 컴파일 언어란, 소스코드 전체를 기계어로 번역한 후(컴파일) 이 기계어를 cpu를 통해 실행하는 방식으로 동작한다. 반대로 인터프리트 언어는, 소스 코드를 컴파일 하지 않고, 인터프리터를 통해 한줄 씨 번역하며 실행하는 방식으로 동작한다. 컴파일 언어의 경우, 실행 시에는 실행만 하면 되므로..

CS/필수지식 2022.06.21

Process와 Thread의 개념 및 차이

프로세스와 스레드가 뭐에요? 라고 말하면 답하는건 어렵지만 않지만 이둘의 차이점은 어떤것이 있는지, 깊게 파고들면 정확하게 대답하기가 쉽지않다. 우선 프로세스란 OS로부터 자원을 할당받은 작업의 단위다. 스레드란, 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위다. 즉 스레드는, 한 프로세스 내에서 나뉘어진 실행 단위인 셈이다. 가령 프로세스 두개가 동시에 실행하기 위해선, 프로세스1이 cpu에 적재되었다가, 준비상태로 내려가고 프로세스2가 적재되고, 이를 반복한다. 이것이 문맥교환이며, 이것이 반복되면 복잡하고 오버헤드가 발생하기 쉽다. 그래서 스레드는 프로세스의 메모리 구조에서, 코드 데이터 힙 영역을 공유한다. 스택 부분만 스레드마다 따로 가지고 있는 것이다. 공유되는 자원이 있기에, 문맥교환..

CS/필수지식 2022.02.11