Computer Theory

Computer Theory/Design partterns

전략 패턴

전략 패턴 (Strategy Parttern) 전략 패턴이란 객체들이 할 수 있는 행위에 대해 전략 클래스를 생성하고 유사한 행위들을 캡슐화하는 인터페이스를 정의하여 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략만 바꿔 행위를 유연하게 확장하는 방법을 의미한다. 헤드 퍼스트 디자인 패턴 책에서는 이를 오리게임에 비유하여 설명한다. 상황 모든 오리가 "꽥" 소리를 내고 수영을 할 수 있기에 슈퍼클래스로 작성한다. 오리마다 생김새는 다르기 때문에 display는 오버라이드 한다. 슈퍼클래스에 fly() 기능을 추가하고 RubberDuck(고무 오리) 클래스도 추가하였다. Duck의 몇몇 서브 클래스만 날 수 있을 뿐 고무오리는 날지 못한다. 하지만 슈퍼 클래스에 fly()을 작성하..

Computer Theory/Web

웹 인증 (쿠키, 세션, 토큰)과 JWT

웹 로그인을 구현하다 보면 세션, 토큰, 쿠키, JWT 등의 생소한 용에 대해서 다루는 이야기를 자주 들을 수 있다. 이번에 DRF-simplejwt을 이용하여 jwt 작업을 했는데 세션과 토큰 쿠키 JWT에 대한 개념이 명확하지 않아 이번 기회에 정리해보고자 한다.   쿠키쿠키는 사용자를 기억하기 위해 서버가 사용자의 브라우저에 전송하는 작은 데이터 조각으로, key=value 형식의 문자열 데이터의 묶음이다. 브라우저는 이 문자열 데이터를 저장해 놓았다가 동일한 서버에 재요청 시 쿠키 데이터를 전송할 수 있다. HTTP 프로토콜은 기본적으로 비연결성과 무상태성을 가지고 있기 때문에 서버와 클라이언트 간의 연결 유지를 구현하기 위해 쿠키를 도입했다. 쿠키는 로컬에 저장되며, 브라우저를 종료해도 파일로 ..

Computer Theory/Web

웹 서버와 WAS (Nginx와 Gunicorn)

django 프로젝트를 하다 보면, gunicorn과 nginx로 배포하는 경우가 흔하다. 하지만 강의나 여러 글만 따라가면서 프로젝트를 진행했기에 gunicorn과 nginx에 대한 개념이 뚜렷하지 않다. 따라서 이에 대한 개념을 잡아보고자 한다. Nginx Nginx에 알아보기 전 웹서버와 WAS에 대해서 짚고 넘어가자. https://www.youtube.com/watch?v=Zimhvf2B7Es&t=659s 해당 내용을 듣고 간단히 정리해 보자 - 웹서버: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 콘텐츠를 제공하는 프로그램을 의미한다. 대표적으로는 Apache와 Nginx가 있다. - WAS(Web Application Server): DB조회나 다양한 로직 처리를 요구하는 동적인..

Computer Theory/Web

SSH로 원격 서버에 접속하기

SSH SSH(Secure Shell)는 원격 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜을 의미한다. 기존의 유닉스 시스템 쉘에 원격 접속하기 위해 사용하던 Telnet, Rlogin, RSH는 데이터 전송시 암호화가 이루어지지 않아서 스니핑을 통해 데이터가 노출되기 쉬운 문제점을 가지고 있었다. SSH 프로토콜은 안전한 원격 접속과 보호되지 않은 네트워크에서 안전한 네트워크 서비스를 제공하기 위해 암호화를 사용함으로써 이전의 문제점을 해결 하였다. SSH 프로토콜은 클라이언트-서버 모델로 동작하며 대칭키 방식, 비대칭키 방식, 해시 알고리즘을 사용하여 인증 및 암호화를 수행한다. 대칭키 방식 : 동일 키값으로 암호화와 복호화를 하는 방식, 클라이언트-서버 간 전체 연결을 암호화에 사용 비대..

Computer Theory/development theory

[Dev] 소프트웨어 개발 방법론 애자일(Agile), 폭포수(Watherfall)

소프트웨어 개발을 할 때에는 요구사항 분석 -> 설계 -> 구현 -> 배포 -> 유지보수 등과 같은 과정이 존재한다. 그 중에서도 소프트웨어 개발 프로젝트를 진행할 때 가장 널리 사용되는 두 가지 방법론인 애자일, 폭포수 모델 방법론에 대해 알아보자. 폭포수 모델 폭포수 방법론은 소프트웨어 개발 단계가 위에서 부터 아래로 폭포에서 물 흐르듯 순차적으로 진행하는 방법이다. 폭포수 방법론은 한단계씩 진행함에 따라 다시 이전 단계로 가지 않고 계속 진행하기 때문에 다음 단계로 가기전에 완벽하게 요구사항을 반영하여 개발 했다는 것을 전제로 진행한다. 📢 절차가 뚜렷한 대기업이나 외주, 또는 각자의 팀원이 자신의 계층 역활을 완벽하게 잘 할 것 같다고 생각하는 팀이 자주 사용하는 방법론이다. 단점으로는 수직적으로..

JHeaon
'Computer Theory' 카테고리의 글 목록 (3 Page)