ICMP란?ICMP(Internet Control Message Protocol, 인터넷 제어 메시지 프로토콜)는 네트워크 장치에서 네트워크 통신 문제를 진단하는 데 사용하는 네트워크 계층 프로토콜이다. ICMP가 사용되는 주요 방법은 데이터가 목적지에 잘 도달하는지, 도달 시간이 적절한지를 확인하는 것이다. ICMP의 용도ICMP의 주요 용도는 오류보고이다. 두 장치가 인터넷을 통해 연결되면 ICMP를 사용하여 데이터가 의도한 대상에 도달하지 못한 경우, 수신 장치에서 전송장치로 전달할 수 있는 오류를 생성할 수 있다. 다만 데이터에 대한 정보를 전달하기 위한 프로토콜이지만, 데이터 자체를 관리하지는 않는다.예를 들어 데이터 패킷이 라우터에 비해 너무 큰 경우 라우터에서는 패킷을 삭제하고 ICMP 메시..
프록시(Proxy)란?프록시 서버란 클라이언트 - 서버 사이에 위치하여 통신을 중계하는 역할을 하는 응용 프로그램(서버)을 말한다.프록시(Proxy)는 '대리', '중계' 라는 의미를 갖고 있으며, 여러 가지 이유로 직접 통신할 수 없는 경우에 중간에서 통신을 중계하는 역할을 수행한다. (보안, 성능, 안정성 향상 등의 목적을 갖고 있다.)일반적으로 웹은 클라이언트에서 서버로 요청을 보내고, 서버에서 클라이언트로 응답하는 방식의 통신으로 데이터를 전달한다. 여기에 프록시 서버를 추가해서 요청을 중계하도록 해서, 보안상의 안정성을 높이거나, 성능을 향상시킬 수 있다.정리하자면 아래와 같은 과정을 거쳐서 통신이 이루어진다.클라이언트 -> 프록시 서버 요청프록시 서버 -> 서버 요청서버 -> 프록시 서버 응답..
포트(Port)Port는 운영체제 통신에서의 네트워크 연결이 시작되고 끝나는 논리적인 접속 지점을 말한다. 보통 http://192.168.1.1:8080과 같이 프로토콜/호스트/포트로 구분되어 도메인이 정의된다. 여기서 192.168.1.1와 같은 IP 주소가 컴퓨터 또는 네트워크 장치 등을 식별하는 것이라면, 포트 번호는 해당 컴퓨터 내의 특정 응용 프로그램을 식별한다.데이터를 송수신할 때, DataLink 계층에서 호스트의 NIC(Network Interface Card, LAN 카드)로 MAC 주소를 판별하고,Network 계층에서 IP 주소로 목적지를 판별한다.MAC 주소와 IP 주소로 목적지 호스트까지 도달한 뒤에는 어떤 응용프로그램 또는 프로세스로 접근할지를 알아야 하는데, 이때 쓰이는 것이..
방화벽이란?방화벽(Firewall)은 네트워크 보안 시스템이다. 미리 정의된 보안 규칙에 따라 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 장치 또는 소프트웨어이다. 불법 접근, 악의적 접근, 트래픽 낭비 등을 방지하기 위해 사용된다. 방화벽은 트래픽 필터링, 네트워크 세분화, 감시 및 로깅, 인증, 프라이버시 보호 등의 여러 가지 기능을 한다.이중 인바운드 규칙, 아웃바운드 규칙은 트래픽 필터링 기능에 포함된다. 트래픽 필터링(접근 제어)트래픽 필터링이란 방화벽이 네트워크를 통해 주고받는 데이터 패킷을 검사하고 제어하는 것을 말한다.방화벽이 허용한 트래픽만 네트워크로 들어오거나 나갈 수 있도록 한다.트래픽 필터링 방식 중 패킷 필터링 방식은 데이터 패킷의 헤더 정보를 분석하여 트래픽을 허용/..
CSRFCSRF(Cross Site Request Forgery, 크로스 사이트 요청 위조)는 웹 보안 취약점 중 하나로, 인증된 사용자가 자신의 의지와는 무관하게 웹 애플리케이션에 공격자가 의도한 특정 요청을 보내도록 유도하는 것을 말한다. 제품 구입, 자금 이체, 비밀번호 변경, 기록 삭제 등의 요청을 악의적으로 보내는 것이다. CSRF 공격 예제CSRF 공격을 이해하기 위해 Spring Docs에 좋은 예제가 있어서 가져왔다.https://docs.spring.io/spring-security/reference/features/exploits/csrf.html#csrf(실제로는 여러 가지 보안 제한사항이 있겠지만, 그런 게 없다고 가정하자.) 정상적인 요청 은행 웹 사이트에 로그인 사용자가 다른 계..
위와 같은 에러를 만나본 적이 있을 것이다. 아무런 설정 없이 프론트엔드 서버에서 백엔드 API 서버로 요청을 보냈을 때 발생 할 수 있다. 여기서 "has been blocked by CORS policy"라는 문장이 눈에 띈다. CORS 정책에 의해 blocked 되었고, Access-Control-Allow-Origin header가 없으니까 체크해 보라고 한다.CORS 정책이 무엇이고, 왜 이런 에러가 발생했는지 알아보자. CORS란?CORS(Cross-Origin Resource Sharing, 교차 출처 리소스 공유)는 한마디로 서버와 동일한 도메인이 아닌, 다른 도메인에서 자원에 접근할 수 있도록 허용하는 것을 말한다.기본적으로 웹 브라우저는 SOP(Same-Origin Policy, 동일 ..
OSI 7 LayerOSI 7 Layer란 국제 표준화 기구에서 정의한 모델로, 네트워크 통신이 일어나는 과정을 7단계로 나눈 것이다.국제 표준으로 설정하였지만, 실제로는 OSI 7 Layer 모델보다는 TCP/IP 모델을 사용한다.그렇지만 TCP/IP 모델 또한 OSI 7 Layer을 변형, 통합한 것이기 때문에 OSI 7 Layer도 알아둘 필요가 있다. 우선 OSI 7 Layer는 아래와 같이 7개의 계층으로 나뉜다.1 계층 - 물리(Physical) 계층 : 전기적, 기계적 특성을 이용하여 시스템 간 물리적인 연결을 담당한다.2 계층- 데이터 링크(DataLink) 계층 : 네트워크 기기간 데이터 전송을 관리하고, 물리 주소 부여 3 계층 - 네트워크(Network) 계층 : 다른 네트워크와의 데..
REST (Representational State Transfer : 자원의 상태 전달) 자원(resource)의 표현(representation)에 의한 상태 전달 URI를 통해 자원을 명시하고, HTTP Method를 통해 자원에 대한 CRUD 처리 방법 지정 Create : 생성(POST) Read : 조회(GET) Update : 수정(PUT) Delete : 삭제(DELETE) REST API REST 기반으로 서비스 API를 구현한 것이다. 마이크로 서비스, Open API 등에서 사용된다. 마이크로 서비스 : 마치 객체지향에서 작은 기능을 분리하듯이, 단일 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 소프트웨어 개발 기법이다. Open API : 누구나 사용할 수 있도록 공개..