분류 98

[Board] ArgumentResolver 사용에 따른 LoginController 테스트 코드 작성!! (트러블 슈팅)

이번 테스트 코드를 작성할 때, 어려움이 많았습니다. 특히 필터와 인터셉터 코드를 처음 작성하였고, 이에 따른 어려움이 특히 크게 느껴졌습니다.이번 포스팅에서는 테스트 코드 짤 때, ArgumentResolver를 어떠한 방식으로 처리했는지 작성해 보겠습니다.  조금 더 명확히 명시하자면 ArgumentResolver 로직이 필요없는(사용될 필요가 없는) 컨트롤러 테스트 코드 작성입니다!! 예를 들어, 제가 설명하고자 하는 로그인 로직이 있겠습니다! 이번 미션에서 cookie, session, jwt 에 관한 로그인 로직을 작성하였고, 리졸버와 인터셉터는 jwt에 관해서만 로직을 작성하였습니다!따라서 CookieLoginController , SessionLoginController 테스트 코드는 리졸버..

Session 과 Session Login

세션이란 무엇인가?세션은 서버에서 유지되는 사용자의 상태 정보를 의미합니다.왜 세션을 써야 하는가? - 인증의 필요성HTTP 프로토콜의 특징으로 인해 필요합니다.비연결성 : 클라이언트가 서버에 요청을 하고나서 그에 걸맞는 응답을 보낸 후 서버와 클라이언트의 연결을 끊는 방식입니다.무상태 : 커넥션이 끊는 순간 이후로 어떠한 상태정보를 유지하지않는 특성입니다.서버는 클라이언트 기억하지 못함 -> 계속 기억시켜 줌 :: 이것이 인증세션 장단점장점보안성:세션은 클라이언트 측에 민감한 데이터를 저장하지 않고, 서버에서만 데이터를 관리하므로 보안성이 높습니다. 쿠키에는 세션 ID만 저장되고, 실제 데이터는 서버에서만 접근 가능합니다..데이터 무결성:세션 ID가 서버에서 관리되기 때문에, 클라이언트가 데이터를 조작..

Cookie 와 Cookie Login

쿠키란 무엇인가?쿠키는 사용자의 웹 브라우저에 저장되는 작은 데이터 조각입니다.왜 쿠키를 써야 하는가? - 인증의 필요성HTTP 프로토콜의 특징으로 인해 필요합니다.비연결성 : 클라이언트가 서버에 요청을 하고나서 그에 걸맞는 응답을 보낸 후 서버와 클라이언트의 연결을 끊는 방식입니다.무상태 : 커넥션이 끊는 순간 이후로 어떠한 상태정보를 유지하지않는 특성입니다.서버는 클라이언트 기억하지 못함 -> 계속 기억시켜 줌 :: 이것이 인증쿠키의 장단점장점클라이언트 측에 상태 저장:클라이언트에서 상태 정보를 저장할 수 있어 서버 자원 절약이 가능합니다.자동 요청 전송:브라우저가 자동으로 쿠키를 서버에 포함시켜 전송하므로 개발자가 별도의 처리 없이 상태 유지 가능합니다.상태 유지:정보를 저장하여, 사용자가 웹사이트..

네트워크 층: 데이터 전송

네트워크층 서비스패킷화(Packetizing): 네트워크층의 첫 번째 의무는 데이터 패킷화. 발신지의 네트워크층에서 페이로드(전송될 데이터)를 캡슐화하고, 목적지에서 캡슐을 제거하는 역할을 함.경로 지정(Routing): 네트워크층은 발신지에서 목적지로 데이터를 전송하기 위한 최적의 경로를 찾아낸다(최소비용).오류 제어(Error Control): 네트워크층에서 오류를 제어할 수 있지만, 실제로는 상위 계층에서 오류 제어를 수행하는 경우가 많음. (-> 네트워크 계층에서 오류 검사는 비효율적, 따라서 헤더 훼손만 방지하기 위해 데이터그램에 검사합 필드 추가)흐름 제어(Flow Control): 송신자가 수신자의 처리 능력을 초과하지 않도록 전송 속도를 조절하는 역할을 함 .혼잡 제어(Congestion ..

연결 장치와 가상 LAN

연결 장치연결 장치는 네트워크 장치들을 연결하거나 인터넷을 구성하기 위해 네트워크를 서로 연결하는 역할. 인터넷 모델의 서로 다른 계층에서 동작하며, 주요 연결 장치에는 허브, 링크 계층 교환기, 라우터가 있음.허브 (Hub)물리층(Physical Layer)에서 동작: 허브는 물리층에서만 동작하는 장치.중계기(Repeater): 신호가 약해지거나 훼손되기 전에 수신하여 원래의 비트 형태로 재생하고 증폭.허브는 필터링 기능이 없으며, 어느 포트로 프레임을 전달할지 결정할 기능이 없음.링크 계층 교환기 (Link-Layer Switch)물리층과 데이터 링크층에서 동작: 수신한 신호를 물리층에서 재생성하고, 데이터 링크층에서 프레임 내의 MAC 주소를 검사.필터링 기능: 목적지 주소를 확인하여 프레임이 전달..

광역통신망: WAN(2)

셀 방식 이동전화 (Cellular Telephony)동작 원리셀(Cell): 서비스 영역을 셀로 나누고, 각 셀에 작은 기지국(Base Station, BS)을 설치.핸드오프(Handoff): 사용자가 통화 중에 다른 셀로 이동할 때 통신을 끊지 않고 다른 기지국으로 연결 전환. -> 셀 방식은 셀로 나뉘어서 통신한다는 느낌 기억하면 됌.1세대 이동통신 (1G)아날로그 신호를 사용하는 첫 번째 세대 이동통신 시스템.AMPS (Advanced Mobile Phone System): 북미에서 주로 사용되었던 아날로그 셀 방식 시스템.2세대 이동통신 (2G)디지털화된 음성 통신을 제공.GSM (Global System for Mobile Communication): 유럽 표준의 디지털 셀 방식 시스템.IS-..

광역 통신망: WAN(1)

전화망 (Telephone Networks)가입자 회선 (Local Loop): 가입자의 전화와 가까운 종단국 또는 지역국을 연결하는 꼬임쌍선 케이블.간선 (Trunk): 전화국들 사이의 통신을 담당하는 전송 매체.교환국 (Switching Office): 교환기를 사용하여 여러 가입자 회선 또는 간선을 연결해 서로 다른 가입자들 사이의 통신을 연결함.LATA (Local Access Transport Area) - 작은 지역의 전화망지역 접근 전송 구역으로, 작은 도시나 큰 도시의 통신을 구역으로 나눔.LATA 내 서비스: 공중 통신사업자 LATA 간 서비스: 장거리 교환 통신사업자 신호방식(그렇게 중요하지는 않음)대역 내 신호방식 (In-band Signaling): 통화 연결과 실제 통화가 동일한 ..

근거리 통신망: LAN

이더넷 (Ethernet)LAN(Local Area Network): 제한된 지역(빌딩, 캠퍼스 등) 내에서 사용되는 네트워크.IEEE 표준: 데이터 링크층에서 두 가지 부계층을 정의함.논리 링크 제어(LLC, Logical Link Control) 부계층매체 접근 제어(MAC, Media Access Control) 부계층표준 이더넷 (10Mbps)속도: 10Mbps접근 방식: CSMA/CD비연결형과 신뢰성 없는 서비스(connectionless and Unreliable)이더넷은 비연결형 프로토콜이며 프레임 간 독립적으로 동작함.프레임이 전달되지 않거나 손실된 경우, 상위층 프로토콜에서 재전송 등의 방식을 사용하여 대응함.프레임 형식:프리엠블(Preamble): 프레임 도착과 동기화 역할.시작 프레임..

엔티티(Entity) - 왜 기본 생성자가 필요할까?

Entity - 기본 생성자 필요한 이유기본 생성자가 존재하지 않는다면 DB에서 조회해 온 값을 엔티티로 만들 때 객체 생성 자체가 실패합니다. -> 이유 : JPA가 엔티티를 인스턴스화할 때 리플렉션(Reflection)을 사용하기 때문입니다.리플랙션이란? - 자바 프로그래밍 언어에서 런타임에 클래스, 인터페이스, 메서드, 필드 등의 구조를 검사하고 조작할 수 있는 기능을 의미합니다.그래서 위와 같은 이유로 기본 생성자가 필요한데... 접근 제어자는 어떤 것을 써야 할까요?기본 생성자의 접근 제어자는 어떤 것을 써야 할까?private 사용했을 경우 : 리플랙션 사용할 때 접근 자체가 불가능합니다. -> JPA는 프록시 기술을 사용하는데 거기서 프록시 기술을 쓸 때, jpa hibernate가 객체를 ..

엔티티 매니저와 영속성 컨텍스트

엔티티 매니저란?엔티티를 저장, 수정, 조회, 삭제하는 등 엔티티와 관련된 모든 일을 처리합니다.말 그대로 엔티티를 관리하는 관리자 입니다.영속성 컨텍스트 사용(엔티티를 영구 저장하는 환경 이라는 뜻.) => 영속성 컨텍스트에 엔티티를 저장하거나 조회하고 보관합니다. 엔티티 매니저 팩토리와 엔티티 매니저데이터베이스 사용하는 애플리케이션은 일반적으로 하나의 엔티티 매니저 팩토리 생성. => 필요할 때마다 엔티티 매니저 펙토리에서 엔티티 매니저 생성중요 엔티티 매니저 팩토리는 여러 스레드가 동시에 공유해도 안전 BUT 엔티티 매니저는 여러 스레드 동시 접근 시 동시성 문제 발생엔티티의 생명주기비영속 : 영속성 컨텍스트와 관계가 없는 상태영속 : 영속성 컨텍스트에 저장된 상태 -> 엔티티가 영속성 컨텍스트에 ..