분류 전체보기

🌐 네트워크

[네트워크] 애플리케이션 계층 - HTTP, Cookie, Web Cache

🟩 01. HTTP (HyperText Transfer Protocol) 이란? HTTP는 인터넷에서 웹 페이지 같은 문서를 전송하기 위해 사용하는 프로토콜이다. 클라이언트 프로그램과 서버 프로그램은 서로 HTTP 메시지를 교환하며 통신한다. 01-01. HTTP는 TCP를 전송 프로토콜로 사용한다. 클라이언트는 먼저 서버에 TCP 연결을 시작한다. (3-way-handshake) 브라우저와 서버 프로세스는 소켓 인터페이스를 통해서 TCP를 접속한다. 클라이언트 프로세스 측 소켓 인터페이스 클라이언트 프로세스와 TCP 연결 사이에서의 출입구이다. 즉, 클라이언트는 HTTP 요청 메시지를 소켓 인터페이스로 보내고 HTTP 응답 메시지를 받기도 한다. 서버 프로세스 측 소켓 인터페이스 서버 프로세스와 TCP..

🌐 네트워크

[네트워크] 애플리케이션 계층 - 네트워크 애플리케이션의 원리

🤔 네트워크 애플리케이션 구조란 뭘까? 자주 사용하는 웹 애플리케이션을 예시로 떠올려보자. 웹 애플리케이션에서는 서버와 클라이언트로 구별되고 서로 통신하는 프로그램이다. 그러면 웹 애플리케이션을 네트워크 애플리케이션 구조라고 생각할 수 있을까? ❌ 그건 아니다. 웹 개발자로서 학습하면서 웹 애플리케이션 구조만을 생각할 수 있다. 하지만 실제로 네트워크 애플리케이션 구조는 웹말고도 다양한 시스템이 존재한다. 🟩 01. 네트워크 애플리케이션 구조 네트워크 애플리케이션 구조는 애플리케이션의 설계 및 구성 방식을 의미한다. 대표적인 구조로 "클라이언트-서버 구조", "P2P 구조"가 있다. 01-01. 클라이언트-서버 (Client-Server) 구조란? 기본적인 구조로, 클라이언트와 서버 간의 역할을 분리한다..

☁️ AWS

[AWS] IAM 루트 계정을 이용하지 않고 사용자 및 그룹 사용하기

🟩 IAM 루트 계정을 이용하지 말자 모든 권한을 가지고 있는 IAM 루트 계정을 이용할시 보안상 문제가 생길 수도 있습니다. 이러한 이유로 사용자 및 그룹을 생성하여 사용하는것을 권장합니다. 🟩 IAM 사용자 계정 추가하기 01. 사용자 추가 먼저 IAM 페이지에서 엑세스-관리에 사용자 페이지로 들어갑니다. 02. 사용자 세부 정보 등록 사용자 추가 버튼을 통해서 사용자 세부 정보를 지정합니다. 저는 사용자 이름을 입력하고 암호는 사용자 지정을 선택했습니다. 03. 권한 설정 그룹에 사용자를 추가합니다. 이전에 만들어둔 그룹이 없기 때문에 새로운 그룹을 만들겠습니다. 03-01. 그룹 생성 사용자 그룹을 생성할 때 여러 권한 정책들을 AWS에서 제공하고 있습니다. 권한 정책을 새로 생성할 수도 있습니다..

☁️ AWS

[AWS] IAM (Identity and Access Management, Global Service)

🟩 IAM 이란? IAM은 Identity and Access Management의 약자이다. IAM에서는 사용자를 생성한다. 그룹에 배치하는 글로벌 서비스이다. 보통 AWS에서 계정을 생성할 때 자동으로 IAM(루트 계정)도 생성된다. 🟩 IAM을 사용하는 방식 (User & Group) IAM을 사용하면 다음과 같이 사용자를 그룹으로 배치할 수 있다. Group A : USER_1, USER_2, USER_3 Group B : USER_4, USER_5, USER_6 Group C : USER_3, USER_4 🟩 사용자와 그룹(User & Group)을 만드는 이유는 뭘까? AWS 계정을 사용하도록 허용하기 위해서 사용자와 그룹(User & Group)을 만든다. AWS 계정을 사용하도록 허용하기 ..

😋 JPA

[JPA] 객체와 테이블 매핑 - @Entity, @Table

🟩 @Entity 란? 테이블과 매핑할 클래스에 @Entity 어노테이션을 붙인다. @Entity가 붙은 클래스는 JPA가 관리해주며, 이것을 엔티티(Entity)라고 한다. 🟩 @Entity 사용 예제 // Entity에 member라는 이름을 부여한다. @Entity(name = "member") public class Member { @Id @GeneratedValue private Long id; // 생성자 접근제어자 - public 또는 protected public Member() { } } 🟩 @Entity 속성 속성 기능 기본값 name JPA에서 사용할 Entity 이름 지정한다. 기본값은 클래스 이름이다. 이름이 같은 엔티티 클래스가 없어야 한다. 설정하지 않은 경우 클래스 이름을 사..

🌐 네트워크

[네트워크] 메시지 무결성과 전자서명

🟧 메시지 무결성이 필요한 이유 간단하게 말하면, 메시지가 중간에 조작되거나 변조되지 않도록 보장해야 한다. 메시지가 변경되었다면 수신자는 잘못된 행동을 할 수도 있기 떄문이다. 네트워크 내 한 쌍의 라우터 간의 경로를 결정하기 위해 링크 상태 라우팅 알고리즘을 사용 네트워크가 있다. 링크 상태 알고리즘에서 각 라우터는 네트워크 내 모든 다른 라우터들에게 링크 상태 메시지를 보내야 한다. 라우터의 링크 상태 메시지는 직접적으로 연결된 이웃들의 목록과 이 이웃들로의 연결 비용을 포함하고 있다. 한 라우터가 모든 다른 라우터로부터 링크 상태 메시지를 받으면 네트워크 전체 지도를 생성해 낼 수 있다. 최소 비용 라우팅 알고리즘을 수행하여 포워딩 테이블을 설정할 수 있다. 알고리즘에 행할 수 있는 비교적 단순한..

🌐 네트워크

[네트워크] 암호화의 원리

🟧 안전한 통신 - 기밀성편 안전한 통신을 하기위해서는 다음과 같은 사항을 고려해야 한다. 기밀성 송신자와 지정된 수신자만이 전송되는 메시지 내용을 이해할 수 있어야 한다. 즉, 도청자가 메시지를 가로채도 해석할 수 없도록 암호화해야 한다. 🟧 침입자 시나리오 송신자와 수신자는 제어 메시지(제어 세그먼트)와 데이터 메시지(데이터 세그먼트)를 교환한다. 이때 침입자는 다음과 같은 일을 할 수 있다. 채널상의 제어 메시지 및 데이터 메시지를 기록 메시지, 메시지 내용을 조작, 삽입, 삭제 침입자의 일을 좀 더 쉽게 풀어 얘기해보면 다음과 같다. 패스워드와 데이터를 훔친다. 다른 사람인 것처럼 위장하여 통신 연결을 가로챈다. 시스템 자원에 부하를 일으켜서 사용자의 서비스를 거부하게 만든다. 이러한 문제를 해결..

👨‍🚀 우아한테크코스 5기

[20230521] 우아한테크코스 5기 LEVEL 2 - 지하철 미션, 추가 비용 정책을 데이터베이스에서 가져오려면

지하철 미션 3단계 진행하면서 노선별 거리당 추가 요금 정책을 어떻게 해결할 것인가에 대한 문제를 생각해보는 글이다. 거리당 추가 요금이 고정이라면 편하겠지만 노선이 계속 추가되거나 수정이 필요할 경우에 데이터베이스를 활용하지 않으면 서버를 내렸다가 켜야하는 상황이 발생한다. 이러한 문제를 해결하고자 노선별 거리당 추가 요금 정책을 데이터베이스에 저장하기로 했다. 그리고 문제를 해결하려고하니 오류가 마구 터지기 시작했다. 🥲 먼저 비용관련해서 고려해야할 부분은 3가지인데 "노선별 거리당 추가 요금 정책" 관련 이야기만 하려고 한다. 기본 요금 1,250 노선별 거리당 추가 요금 정책 ("추가 요금 정책" 이라고 부르겠다.) 승객별 요금 할인 🟧 01. 현재 지하철 애플리케이션 플로우 문제 상황을 더 확실..

👨‍🚀 우아한테크코스 5기

[20230508] 우아한테크코스 5기 LEVEL 2 - 장바구니 미션 2단계

🔗 Gitguh Repository GitHub - hyena0608/jwp-shopping-cart Contribute to hyena0608/jwp-shopping-cart development by creating an account on GitHub. github.com 🔗 Github PR [2단계 - 상품 관리 기능] 헤나(박현서) 미션 제출합니다 by hyena0608 · Pull Request #273 · woowacourse/jwp-s 안녕하세요 토니 !! 2단계도 잘 부탁드리겠습니다 😄 01. BasicAuthArgumentResolver에 Service 계층 넣어서 로그인 인증하기 중복되는 로직을 제거하기 위해서 ArgumentResolver에서 AuthService를 이용해서 DB에..

🍃 스프링

[Spring] 필터와 인터셉터의 차이 (Filter, Interceptor)

🟧 01. 필터(Filter)와 인터셉터(Interceptor) Filter와 Interceptor는 위치부터 차이가 있다. Filter는 서블릿 컨테이너(Servlet Container)가 관리하고 Interceptor는 스프링 컨테이너(Spring Container)가 관리하고 있다. 클라이언트의 요청이 들어왔을 때 DispatcherServlet에 들어가기 전과 들어간 후로 Filter와 Interceptor가 작업을 처리하는 것을 볼 수 있다. Filter와 Interceptor는 무슨 일을 하고 있으며 어떻게 사용할 수 있을지 알아보자. 🟧 02. 필터(Filter)는 어떻게 이용되고 있을까 ? 그림에서 볼 수 있듯이 필터(Filter)는 서블릿 컨테이너(Servlet Container)에서 관..

hyena0608
'분류 전체보기' 카테고리의 글 목록 (4 Page)