VPN이란? -Virtual Private Network의 줄임말로 한글로는 '가상 사설망'이라고 불립니다. 이는 사용자의 디바이스와 VPN 서버 사이에 암호화된 터널을 구축하여 인터넷 트래픽을 안전하게 보호하고, 사용자의 원래 IP주소를 숨기는 역할을 수행합니다. VPN 특징 사용자와 VPN 서버사이의 통신은 암호화되어 전송됨. VPN을 사용해 VPN서버의 IP주소를 대신 사용함. VPN으로 해당 VPN내부망에 원격으로 접근가능함. 해당 IP에서 제한된 서비스를 우회하여 사용가능함. 데이터 암호화, 통신 추가경유로 인해 속도 저하가 발생함. 일부 VPN서버에서 악의적인 데이터 수집이 있을 수 있으므로 주의 필요함. VPN 동작 과정 VPN 서버 연결 - 클라이언트 디바이스와 VPN 서버와의 연결을 진행..
네트워크 식별자 MAC주소 -네트워크 장치(컴퓨터, 스마트폰 , 라우터, 프린터 등....)가 제조사에서 고유하게 할당받은 주소입니다. -장치 내부의 랜카드에 부여되며, 이를통해 네트워크 상에서 장치들이 서로를 식별합니다. -맥주소는 변하지않으며, 고유한 주소입니다. -주민번호와 비슷하다고 생각하면됩니다. -00:1A:2B:3C:4D:5E IP주소 -네트워크 상에서 각 장치들을 식별하기 위한 주소입니다. -네트워크에 연결된 장치에게만 부여되며, IPv4,IPv6 두가지 버전이 있습니다. -공인IP와 사설IP로 나뉘어져 있습니다. (공인 IP = 중복X , 사설 IP = 중복) -IP주소는 가변적으로 변합니다. -집주소와 비슷하다고 생각하면됩니다. -192.168.0.1 포트번호 -한 네트워크 장치에서 서..
엔티티 구성도 엔티티 매니저 팩토리(Entity Manager Factory) -JPA를 사용해 데이터베이스와 상호작용하기 위한 엔티티 매니저를 생성하고 관리하는 역할을하는 팩토리입니다.이를 사용해 Entity Manager를 생성 및 관리를 할 수 있으며, 애플리케이션 전체에서 공유됩니다. 엔티티 매니저(Entity Manager) -엔티티 영속성 컨텍스트(Persistence Context)를 관리하는 것으로, 영속석 컨텍스트 내부의 엔티티 상태를 추적하고 변경된 엔티티를 데이터베이스에 동기화하는 기능을 제공하는 것 입니다. 이는 애플리케이션에서 여러개 생성이 될 수 있습니다. 영속성 컨텍스트(Persistence Context) - 엔티티를 영구 저장하는 환경으로, 엔티티들을 저장하는 공간입니다. ..
JDBC(Java Database Connectivity) -자바와 데이터베이스 간의 연결을 하는 자바 API입니다. 이를 이용해 자바에서 데이터베이스에 대한 쿼리를 수행하고 데이터를 검색,삽입,갱신,삭제등을 할 수 있습니다. 즉, 데이터베이스를 직접 사용하는게 아닌 자바를 활용해 데이터베이스에 접속하고, 해당 데이터베이스에서 쿼리를 실행해 결과를 받아오는 기술입니다. JDBC 과정 데이터베이스 드라이버 로드 -자바에서 사용할 데이터베이스에 해당하는 JDBC 드라이버를 클래스 패스에 추가하고, 드라이버를 로드하는과정입니다. 데이터베이스 연결 설정 -JDBC URL, 사용자명, 비밀번호 등을 설정하여 데이터베이스에 연결합니다. Statement 생성 -SQL문을 실행하기 위해 Statement 객체 또는 ..
단위 테스트(Unit Test) -개별적인 컴포넌트 또는 메서드 등의 작은 단위를 테스트하는 단계입니다.\ 주로 코드의 기능을 확인하고 버그를 발견하는데에 초점을 둡니다. 개별적인 단위의 코드를 테스트하기 때문에 각각의 부분을 나눠서 오류의 위치를 빠르게 찾을 수 있습니다. 스프링에서는 주로 JUnit을사용합니다. 통합 테스트(Integration Test) -여러 컴포넌트 또는 서비스 간의 상호작용을 테스트하여 전체적인 시스템의 동작을 확인하는 단계입니다. 개별적인 단위들을 합쳐서 서로 상호작용을 테스트하기에 실제 어플과 유사하게 테스트를 진행합니다. 외부와의 연결(데이터베이스, 웹 서비스등..)을 통해 실제 어플의 환경을 구축할 수 있습니다. 단위 테스트 통합 테스트 범위 함수,메서드,클래스... 여..
URL에 데이터 삽입 방법 쿼리 파라미터(Query Parameter) -URL의 끝에 '?'을 사용하여 쿼리파라미터를 추가하여 데이터를 전송하는 방식입니다. 쿼리 파라미터는 key=value형식으로 데이터를 전송하고, 여러개의 쿼리 파라미터를 보낼때는 '&'로 구분합니다. EX) http://example.com/products?id=123&name=example 경로 변수(Path Variable) -URL 경로에 데이터를 변수로 넣어 전달하는 방식입니다. 하나의 경로 부분에 데이터를 삽입하여 변수처럼 사용할 수 있습니다. 하나의 데이터만 전송할 수 있으며, {id}와 같은 형태로 경로 변수를 사용할 수 있습니다. EX) http://example.com/products/{id} -> http://e..
Mapping이란? -클라이언트로 부터 요청이 들어오는 URL과 컨트롤러 메서드를 연결하는 작업입니다. 이를 통해 클라이언트의 요청이 URL로 들어올 때 해당 URL에 맞는 컨트롤러가 있는지 확인하고 해당 컨트롤러를 매핑하여 해당 요청을 처리합니다.이를 구현하기 위해선 Mapping 애노테이션이 필요합니다. @RequestMapping -스프링에서 클랄이언트 요청 URL과 클래스,메서드를 매핑하기 위해 사용되는 애노테이션입니다. 이는 여러 종류(get,post,put,delete,patch)의 URL을 다 포함하고 있으며, 옵션을 통해 종류를 지정할 수도 있는 애노테이션입니다. @Controller public class ProductController { @RequestMapping("/products..