본문 바로가기
  • 구름빵의 개발 블로그

전체 글30

[Network] OSI 7계층 OSI 7계층 네트워크 통신이 이루어지는 과정을 계층으로 구분한 모델로 각 계층마다 정확한 역할과 책임을 갖고 있다는 특징이 있다. 이름에서 알 수 있는 것처럼 7개의 계층으로 되어 있다. 7계층: Application Layer( 응용 프로그램 계층 ) OSI 7계층 중 가장 상단에 위치하고 있는 계층이다. 네트워크 통신을 제공하는 프로그램의 영역으로 실제로 사용자가 네트워크 통신을 사용하는 프로그램을 사용할 때 직접적으로 상호작용하는 프로그램을 의미한다. 실제 컴퓨터에서 사용하는 프로그램을 의미하며 우리가 흔히 사용하는 카카오톡, 인스타그램등 프로그램이 7계층에 속한다. 해당 계층에서 FTP, SMTP, HTTP 등의 프로토콜을 관리한다.사용자가 직접 편지를 보내려고 할 때 준비하는 '편지지'를 준비.. 2025. 11. 5.
[VPC] VPC와 트래픽 보안 * 콜아웃 내부의 요소는 네트워크 측면에서의 이해를 위해 작성한 예시입니다. VPCAWS에서 인프라를 구축할 때 필수적으로 생성해야 하는 네트워크 영역을 의미한다.AWS 리소스를 구동할 수 있는 클라우드 상의 논리적인 격리 공간을 의미하며, 계정 당 각 리전에 5개씩 생성할 수 있다.CIDR 블록 생성 시 추후 생성할 서브넷 영역까지 고려해서 지정해주는 것이 좋다.my-vpcIPv4 CIDR Block: 192.168.0.0/16 - 사설망 범위를 192.168.xxx.xxx로 지정한다. Subnet이 VPC를 한 번 더 논리적인 영역으로 분리해주는 역할을 한다. 주로 public 영역과 private 영역을 구분하기 위해 분리한다. 이로 인해 외부(인터넷)에서 접근할 수 있는 인프라 서비스들과 내.. 2025. 11. 4.
[JPA] Spring Boot JPA를 통한 Entity 조회 개요JPA를 사용해 데이터를 조회한다는 개념에 대해 정확히 알게 되어 기록하고자 한다. 지금까지 Spring Boot JPA를 사용함에도 불구하고 JPA의 기능을 완전히 사용하고 있지 않았다는 것을 알게 되었다.주로 QueryDSL을 같이 사용하다 보니 양방향 참조를 거의 사용하지 않았으며, Entity를 정의할 때도 단방향 참조만을 사용해 정의했었다. 예를 들어, User와 Order Entity가 있다고 할 때 Order는 주문자 정보를 받아야 하기 때문에 User의 정보를 갖고 있어야 한다. 그렇기에 Order에는 User의 ID 값이 들어가도록 명시했다. 하지만 User 테이블에는 Order의 정보를 담을 이유가 없다. 그렇기에 따로 명시하지 않고 Order에서 User로 향하는 단방향 참조만 구.. 2025. 10. 1.
[Spring Boot] Logging ( feat. Slf4j ) 개요개발하고 운영하는 과정에서 서비스 내부에서 일어나는 작업들을 가시적으로 보여줄 수 있는 가장 효율적으로 유일한 수단이 Logging이다. 디버깅 할 때도, 에러를 잡을 때도 모두 Log를 사용해서 잡기 때문에 이 Logging은 굉장히 중요하다. Logging에 대해 알아보고 Spring Boot에서 Logging을 구현하고 사용하는 방법에 대해 알아보도록 한다. Logging 기능의 구성많은 Logging 프레임워크들은 Logger-Appender-Layout로 이루어진 3단 구성 구조를 갖고 있다.Logger는 로그를 수집하고자 하는 대상으로 로그를 생성하는 주체를 의미한다. Appender는 로그 정보를 출력할 대상으로 로그 정보를 출력하는 장소를 말한다. 파일이 될 수도 있고 콘솔이 될 수도 .. 2025. 9. 29.
[Data Managing] Transaction( 트랜잭션 ) 개요서비스를 개발하면 필수적으로 데이터베이스를 사용하며 데이터를 저장한다. 이후 서비스를 배포하면 여러 명의 사용자가 서비스를 사용하게 되고 이 과정에서 데이터베이스에 매우 짧은 시간 간격으로 데이터에 접근하고자 하는 경우가 많아진다. 이 데이터베이스에 접근해 처리하는 작업은 추가, 생성, 수정, 삭제 중에 하나일 것이다. 동시에 데이터에 접근을 하는 경우, 모두 '조회'에 대한 작업이면 큰 문제가 되지 않겠지만 그 중 하나의 작업이라도 추가, 수정, 삭제라면 문제가 생길 수 있다.어떤 문제가 생길 수 있는지 알아보고 이에 대한 데이터베이스 측면에서 해결하는 방법에 대해 알아보았다. Transaction ( 트랜잭션 )서비스에서 데이터베이스에 요청되는 작업의 최소 단위를 의미한다. 여기서 조금 더 자세히.. 2025. 9. 29.
[Spring Boot] Exception Handler를 통한 예외 일괄 관리 개요서비스를 개발할 때 빠뜨리기 쉬우면서도 사용자 경험을 위해 가장 중요한 것 중 하나가 예외 처리이다. Spring Boot는 데이터베이스와도 통신하고 다양한 비즈니스 로직이 구현되며 Http 통신도 이루어지기 때문에 정말 많은 예외가 나올 가능성이 존재한다. 이런 예외들을 하나하나 각각 다른 곳에서 관리하면 한 번에 관리하기도 어렵고 빠뜨리기도 쉽다. 따라서 이런 예외들을 한 번에 관리할 수 있는 방법에 대해 기록해보고자 한다. @RestControllerSpring MVC를 사용하면 반드시 컨트롤러가 존재한다. 이 때, @Controller 어노테이션과 @RestController라는 어노테이션이 따로 존재한다. 둘 다 같은 컨트롤러인데 어떤 차이가 있나 알아보니 @RestController는 @R.. 2025. 9. 24.