특징 브라우저에 저장하기 때문에 서버 리소스에 부담 없다. 서버 확장성(Scalability): Scaling시에도, 서버는 Stateless하기 때문에 토큰 Verification만 수행하면 된다. 보안성: Verification을 수행하는데 Server의 비밀키가 사용된다. 확장성(Extensibility): 로그인 분야가 사...
디자인 패턴 - 퍼사드 패턴
Facade pattern (퍼사드 패턴) : 스프링 부트 프로젝트에서 서비스간 결합도를 줄이고, 퍼사드 계층에서 모든 것들을 호출한다. 이렇게 처리함으로써 view layer과 서비스를 더 분리할 수 있고, 두 레이어를 연결하는 인터페이스를 퍼사드 계층이 수행한다. 복잡한 여러개의 서비스로직을 한군데(퍼사드)에 묶어 하나의 흐름으로 처리...
코드 깔끔하게 작성하기
소프트웨어 개발 원칙 세가지 1. DRY (Don’t Repeat yourself) <-> WET(Write Every Time, Write Everything twice, Waste Everyone’s Time) 반복되는 것을 피하자 반복된 코드에서 로직의 변경사항이 발생할 때 모든 곳을 변경해야 하고, 한...
세션 유지 방법 - 세션(Session)
: 일정기간동안 한 사용자의 상태를 유지시키는 것(클라이언트를 구분하는 수단). 특징 쿠키는 브라우저나 하드에 저장하는데, 세션은 서버에 저장한다. Session Id(유일한 값인 세션 키값. 개발자 도구에서 JSESSIONID)를 쿠키에 저장하고, 필요할 때마다 서버에 저장된 데이터를 이 키로 받아온다. ...
HTTP 기초
HTTP란? 웹에서 쓰이는 통신 프로토콜(상호간에 정의된 규칙) HTTP 트랜잭션(요청 응답) 속에서 URI, 요청 리소스, 메소드, 메시지 상태코드, MIME타입(text/html) 등을 규정하는 프로토콜 TCP / IP 프로토콜의 Application 레이어에서 동작 네트워크 통신...
Shell과 Kernel
: 터미널(Shell)에 CLi를 입력하면 쉘은 Kernel에게, Kernel은 하드웨어에게 전달 사람이 받는(보는) 것은 위의 과정과 역순으로 전달 커널 : 하드웨어와 가장 가까이 있는 프로그램 “커널을 통해 하드웨어 제어” HW : CPU, 메모리(RAM), Disk 따라서, 함부...
리눅스 Permission
: 어떠한 사용자가 파일, 디렉토리에 대해 Read, Write, Execute를 할 수 있게 / 없게 하는 것 Access mode $ ls -al -rw-rw-r-- 1 joowon joowon 0 Jul 12 12:34 example.txt rw-rw-r-- rw- : owner의 권한 rw- : group의 권한 r-...
Class diagram
Generalization 상속 관계 A -> B : A가 B를 상속 Realization Interface에 정의된 메서드를 오버라이딩해 구현한 것 이라고 생각하면 됨 A -> B : A는 B를 실체화 혹은 구현한것 ...
Port (포트)와 포트포워딩
naver 도메인에 포트 언급 없이 혹은 80 / 443 포트로 접근하면 자연스럽게 접근이 되지만 8000과 같은 포트로 접근하면 되지 않는다. CLI 기준 -p 뒤에 오는 숫자 : ssh -p 22 ubuntu@192.168.156.147 서버에는 0~65536 port 존재 0~1024는 well known port...
유닉스 디렉토리의 구조
: 프로그램 성격에 따라 정해져있는 이름의 디렉토리에 위치하는 규칙 root 디렉토리 (/$) : 홈에서 / 디렉토리로 들어가면 나오는, 유닉스 계열 시스템의 디렉토리들의 Root bin : 사용자들이 사용하는 명령들 위치 이 디렉토리에 bash, nano, pwd, ps, ls, cd, 등 사용자들이 사용하는 것들이 위치 b...