
쿠키(Cookie)란? 웹 페이지들 사이의 공유 정보를 클라이언트 PC에 저장해 놓고 사용하는 방법입니다. 클라이언트(브라우저)에 저장되는 키와 값이 들어있는 작은 데이터 파일입니다. 웹 서버가 웹 브라우저에게 보내는 데이터중 하나입니다. 300개까지 쿠키 저장이 가능하고 하나의 도메인 당 20개의 값만 가질 수 있으며 하나의 쿠키 값은 4KB까지 저장가능합니다. 클라이언트 PC의 쿠키 파일에 데이터를 저장하여 웹 페이지들끼리 공유합니다. 사용자가 따로 설정하지 않아도 브라우저가 request header에 쿠키를 자동으로 넣어 서버에 전송합니다. 클라이언트의 PC에 데이터를 저장하므로 보안에 취약하여, 보안과 무관한경우에 사용합니다. 쿠키는 userId=user-1321;userName=sparta 와..
사용자 인증 미들웨어를 사용하는 이유 1. 클라이언트로부터 전달받은 쿠키를 검증하는 작업을 수행 2. 클라이언트의 요청이 인증되었는지 확인함으로써 애플리케이션의 보안을 강화 3. 특정 엔드포인트나 리소스에 대한 접근을 제어하기 위해 사용자의 인증 상태를 확인 4. 토큰의 유효성을 확인하고, 만료된 토큰이나 조작된 토큰에 대한 처리를 수행 커스텀 비즈니스 로직 1. 클라이언트로부터 쿠키를 전달받음 2. 쿠키가 Bearer 토큰 형식인지 확인 3. 서버에서 발급한 JWT가 맞는지 검증 4. JWT의 유저ID를 이용하여 사용자를 조회 5. req.user에 조회된 사용자 정보를 할당 6. 다음 미들웨어를 실행 • 클라이언트가 전달한 쿠키를 바탕으로 사용자를 검증 • 토큰이 만료되진않았느지, 토큰의 형식은 일치..
API(Application Programming Interface) ■ API는 프로그램끼리 소통하도록 연결해주는 역할을 합니다. ■ 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속입니다. 예시1 ▶ 날씨앱을 이용해 내일의 날씨를 조회한다면, 앱은 날씨 정보를 제공하는 서버에게 정보를 요청해야 하는데 이 때, 앱과 날씨 서버간의 통신을 도와주는것이 API입니다. 서로간의 약속을 한것처럼 API는 정해진 규칙 (어떤정보를 어떻게 요청하는가?, 응답은 어떤 형식으로 받는가?)에 따라 날씨 서버에 정보를 요청하는 역할을 담당합니다. 즉, 날씨 앱의 사용자는 API를 통해 서버로 날씨 정보를 요청(Request)하고 서버는 이 요청을 처리한 뒤 최종 날씨 정보를 API를 통해 반환(Resp..

웹 서버(Web Server)란? ● HTTP프로토콜에 의해 제공 되며 인터넷 상에서 클라이언트의 요청을 처리하고 응답해주는 컴퓨터 또는 프로그램입니다. ● 정적인 파일(HTML, Js, 이미지 파일등)을 제공하기 위한 서버입니다. ● 정적인 파일로만 처리가 가능한것은 WAS로 넘기지 않고 바로 요청을 처리하고 필요한 경우 WAS로 전달하여 처리합니다. ● 웹 서버의 주요 업무는 복잡한 비즈니스 로직의 수행보다는 요청된 콘텐츠나 데이터를 빠르게 반환하는 것으로 빠르게 사용자에게 데이터를 제공해 줄 수 있게 됩니다. 웹 어플리케이션 서버(Web Application Server)란? ● 웹 서버와 현렵하여 동적인 데이터를 제공하기 위한 서버입니다. ● 웹 서버(WS)에서 처리할 수 없는 동적인 정보를 처리..

웹 브라우저란? ● 인터넷 브라우저라고도 불리며, 웹 서버로부터 정보를 요청하고 받아 사용자에게 보여주는 소프트 웨어입니다. ● 웹 브라우저는 HTML, CSS, Js파일을 전달받아 해석하게 되는데 정적인 페이지인 HTML,CSS,Js는 서버에 브라우저로 전송되는 그대로 표시되지만, 동적 웹페이지는 서버로부터 데이터를 받아 브라우저가 실시간으로 내용을 생성하고 변경합니다. 웹의 동작 원리 ①,② 사용자가 웹 브라우저의 주소창에 URL을 입력합니다. ③ 사용자가 입력한 URL주소 중에서 도메인 네임(Domain Name)부분을 DNS(Domain Name System)서버에서 검색합니다. ④ DNS 서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아 사용자가 입력한 URL정보와 함게 전달합니다. ⑤,⑥ ..
선택정렬이란? 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 정렬되지 않은 부분의 가장 앞의 데이터와 교환해나가는 알고리즘입니다. 직관적이고 단순한 정렬방법중 하나입니다. 정렬되지 않은 값중에서 가장 작은 숫자를 선택하는 방식으로 정렬을 진행합니다. 시간 복잡도 Worst : O(n²) Average : O(n²) Best : O(n²) 진행 방법 1. 주어진 배열이 있습니다. 5 3 2 1 4 2. 가장 첫번째 값을 작은 값이라고 가정하고 뒤로 가면서 비교를 합니다. 5 3 2 1 4 3. 작은 값을 하나씩 찾습니다. 첫번째로 3, 그다음 2, 그다음 1 , 4는 1보다 작으므로 1, 가장 작은 값을 찾아갑니다. 5 3 2 1 4 4. 가장 작은 값을 만나면 비교하던 숫자와 자리를 바꿉니다. ..

삽입정렬이란? 간단하면서도 효과적인 알고리즘중 하나입니다. 두번째 자료부터 시작하여 그 앞의 자료들과 비교하여 삽입할 위치를 지정한 후 자료를 뒤로 옮기고 지정한 자리에 자료를 삽입하여 정렬하는 알고리즘 입니다. 시간복잡도 Worst : O(n²) Average : O(n²) Best : O(n) 진행 방법 주어진 배열 : [5, 12, 1, 6, 9] 0번째 인덱스는 정렬되어있다 가정하고 1번째 인덱스부터 왼쪽으로 하나씩 비교를 합니다. 알고리즘으로 구현해보면 • 정렬기준이 되는 배열은 0번째인덱스는 정렬되어있다고 가정하고 1번째부터 하나씩 늘어나며 끝까지 비교합니다. i = 1; i < n; i++ • 정렬기준이 되는 배열은 기준배열 -1씩 줄어들면서 비교하며 진행. 배열에서 음수배열은 없으므로 0보..

객체지향프로그래밍이란?컴퓨터 프로그래밍의 패러다임중 하나입니다.프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.현실세계의 개체를 기계의 부품처럼 하나의 객체로 만들어, 기계의 부품들을 조립하여 제품을 만들 듯이 소프트웨어를 개발할때도 객체들을 조립해서 프로그램을 작성하는 기법입니다. * 컴퓨터 프로그래밍의 패러다임종류더보기 구조적 프로그래밍 (Structured Programming) - 기능 중심적 개발 * 프로그래밍이라는 기술이 시작되면서 가장 처음으로 적용된 패러다임 객체 지향 프로그래밍 (Object-Oriented Programming, OOP) - 프로그램의 처리단위가 객체인 프로그래밍 방법 ..