개발 etc

    로그인, 로그아웃에는 무슨 HTTP 메소드를 써야할까?

    로그인, 로그아웃에는 무슨 HTTP 메소드를 써야할까?

    일단 먼저 HTTP에 대해 간단하게 보자. HTTP 메소드 종류 1. GET : 리소스 조회 서버에 전달하고 싶은 데이터는 query(쿼리 파라미터, 쿼리 스트링)으로 전달 메시지 바디를 사용할 순 있지만, 지원하지 않는 곳도 많아서 권장X 2. POST : 요청 데이터 처리, 주로 등록에 사용 메시지 바디를 통해 서버로 요청 데이터 전달 메시지 바디를 통해 들어온 데이터를 처리하는 모든 기능 수행 (만능) 주로 전달된 데이터로 신규 리소스 등록, 프로세스 처리에 사용됨 3. PUT : 리소스를 전부 교체할 때 리소스를 대체하고, 없으면 생성 (새로운 것으로 덮는다) 클라이언트가 리소스를 식별하여, 리소스 위치를 알고 URI 지정 (POST와 차이점) 4. PATCH : 리소스 부분 변경 (리소스가 존재..

    RSA 암호화 알고리즘이란?

    RSA 암호화 알고리즘이란?

    🚀 RSA 암호화 알고리즘이란? 공개키 암호 시스템 중 하나 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘 전자상거래에서 가장 흔히 쓰이는 공개키 알고리즘 암호화 알고리즘의 핵심은 큰 정수의 소인수 분해가 어렵다는 점을 이용하여 암호화 암호화할 때는 마음대로지만 해독할 때는 아니다. 🚀 그렇다면 공개키(public key)는 무엇일까? 대칭키 암호화와 달리 암호화와 복호화에 서로 다른 키를 사용하는 암호화 방식 공개키 암호화는 공개키와 비밀키(private key)를 사용하여 암호화 및 복호화하는 기술 공개키를 더 알아보기전에 대칭키를 간단하게 알아보자 1. 대칭키 기법 비밀키 하나만 사용 암호화 및 복호화에 같은 키(대칭)를 사용하는 암호화 알고리즘 키를 안전하게 교환하는 것이 가장 중요한 부분..

    OSI 7계층 예시

    OSI 7계층 예시

    빨간색 화살표대로 길찾기를 검색하면 아래로 내려가서 물리까지 온 후 다른 컴퓨터로 전송이 되서 역순으로 가게 된다. 아래는 예시이다. 응용 : 길찾기를 검색한다. 프레젠테이션 : 정보를 암호화 한다. 세션 : 상대방에게 보낼 수 있는지 인증을 체크한다. 트랜스포트 : TCP 또는 UDP 어느것으로 할지 결정한다. TCP는 신뢰성 있는 통신, UDP는 신뢰성은 없지만 빠른 통신 네트워크 : IP로 목적지까지의 경로를 결정한다. 데이터링크 : 직접 연결된 컴퓨터와 통신 물리 : 광케이블로 데이터 전송 데이터 링크 계층에서는 하나의 공유기에 여러대의 컴퓨터가 있다면 누구에게 전송해야하는지 모르는데 이것을 특정해주는 계층이다. 데이터링크 ~ 트랜스포트 계층을 나타내는 그림이다. 1~4계층은 데이터를 전달하는 것..

    로그인 세션 과정과 세션에 대한 문제점

    로그인 세션 과정과 세션에 대한 문제점

    위 사진에 로그인 과정이 나와있다. 그렇다면 여기서 문제점은 무엇일까? 클라이언트가 엄청 많을 때 동시 접속자 수도 엄청나다. 이 때 문제점이 생긴다. 만약 1개의 서버가 100명을 감당할 수 있다고 생각하자. 동시접속자 수는 300명이므로 서버를 2개 더 늘린다. 이 때 요청할 때마다 원활한 서버로 요청을 보내게 되는데 이것을 로드 밸런싱이라고 한다. 1번 서버에서 로그인 과정을 거치고, 다시 2번 서버에 요청을 보내면 또 다시 로그인 과정을 거쳐야한다. 여기에 대한 해결 방안은 무엇이 있을까? 1. 최초 요청에는 무조건 하나의 서버에만 요청이 가는 방법 2. 모든 서버 세션에 복사해주는 방법 3. 모든 서버들이 하나의 DB에 세션을 저장하여 사용하는 방법 이 모든 방법들이 복잡하고 느리다. 3번은 H..

    Nginx란?

    Nginx란?

    2022.02.21 게시글 등록 2022.10.03 수정 및 추가 - 오타 수정 - Q&A 추가 - 기존글 수정 및 추가 올해 캡스톤 프로젝트에서 NGINX를 사용하게 됐는데 어떤 것인지 잘 몰라서 공부하기로 했다. 🧐 Nginx란? 트래픽이 많은 웹사이트의 서버(WAS)를 도와주는 비동기 이벤트 기반구조의 웹 서버 프로그램이다. 공식문서에서는 "NGINX는 고성능, 확장성, 고가용성 웹서버, 역방향 프록시 서버 및 웹 가속기(HTTP 로드밸런서, 콘텐츠 캐시 등의 기능 결합)이다." 라고 소개하고 있다. Web Server : 단순히 정적 파일 응답 WAS(Web Application Server) : 클라이언트 요청에 대해 동적 처리가 이뤄진 후 응답 📝 Nginx가 만들어진 배경 1995년 유닉스 ..

    맥북 특정포트 프로세스 종료

    맥북 특정포트 프로세스 종료

    맥북에서 8080 포트번호를 확인하고 종료하는 방법과 주의할 점을 찾아보자. lsof -i :포트번호 lsof -i :8080 을 입력해서 8080 포트번호를 쓰고있는 PID(프로세스 번호)를 알아내자. PID 번호가 60556인 것을 알아냈다. 이제 이 프로세스를 종료(kill)시켜보자. kill -9 PID번호 kill -9 60556 을 입력해서 8080포트를 쓰고있는 프로세스를 종료시키자. 위 사진처럼 kill -9 명령을 입력후에 아무것도 뜨지않고, 다시 lsof -i :8080을 입력했을 때도 아무것도 뜨지않는다면 종료된 것이다. 즉, 8080포트 번호를 쓸 수 있는 것이다. 📝 이렇게 kill -9 명령으로 강제종료를 시켰지만 주의할 점도 있다. 말 그대로 강제종료이기 때문에 개발자가 작성한..

    맥북 homebrew 설치

    맥북 homebrew 설치

    M1 MacBook Pro - HomeBrew 설치 m1 맥북프로 homebrew 설치 https://brew.sh/index_ko Homebrew The Missing Package Manager for macOS (or Linux). brew.sh 웹사이트에 들어간다. homebrew 홈페이지에서 빨간색 부분을 눌려서 전부 복사한다. 터미널을 열어서 command + v 로 붙여넣기하여 입력하면 설치가 된다. Downloading Command Line Tools for Xcode에서 멈춰있을 수 있다. 나도 에러난줄 알고 찾고있으니 알아서 진행이 계속되었다. 여기서 시간이 너무 오래걸려서 멈춘거아니냐라고 알 수 있지만 계속기다리면 진행이 된다. 조급해하지말고 천천히 유튜브나 보면서 기다리자. 그러면..