객체지향 5대 원칙 📌 정의 SRP(Single Responsiblity Principle) 단일 책임 원칙 소프트웨어의 설계 부품(클래스, 함수 등)은 단 하나의 책임만을 가져야 한다. 책임은 기능으로 해석하면 된다. OCP(Open-Closed Pinciple) 개방-폐쇄 ...
관심사의 분리
관심사의 분리 📌 정의 관심사의 분리(Separation of Concerns, SOC)는 관심이 같은 것끼리는 하나의 객체 안으로 또는 친한 객체로 모이게 하고, 관심이 다른 것은 가능한 따로 떨어져서 서로 영향을 주지 않도록 분리하는 것.
상속에서 @Builder 사용하기
상속에서 @Builder 사용하기 🐛 문제 상황 error: builder() in 자식객체 cannot hide builder() in 부모객체 라는 에러가 나오게 된다. 간단하게 직역하면 “자식객체의 builder()는 부모객체의 builder()에 숨을 수 없다.”라는 말인데 이것을 해결하려면 상속에 대한 기본적인 개념이 있어야한다. 🏴...
외부로부터 안전한 EC2, RDS를 구축하기
외부로부터 안전한 EC2, RDS를 구축하기 🎊 시작하기 전에.. 이 글을 읽기 전에 VPC와 로드밸런서에 대한 기본적인 지식이 필요합니다. AWS 구조는 한 AZ(가용영역) 내부에 EC2와 RDS를 구축하는 것을 목표로 합니다. EC2는 public 서브넷, RDS는 private 서브넷으로 설정하는 것을 목표로 합니다. 1️⃣ 가장 먼저 ...
SRE란 무엇인가
SRE란 무엇인가 📌 SRE란? 사이트 신뢰성 엔지니어링은 IT 운영에 대한 소프트웨어 엔지니어링 접근 방식입니다. SRE 팀은 소프트웨어를 툴로 활용하여 시스템을 관리하고, 문제를 해결하고, 운영 태스크를 자동화합니다. SRE는 확장 가능하고 신뢰성이 높은 소프트웨어 시스템을 생성할 때 유용한 방법입니다. 코드를 통해 대규모로 시스템을 관리할 ...
S3 퍼블릭 액세스
S3 퍼블릭 액세스 📑 버킷 생성 AWS S3탭으로 접근해서 버킷 만들기를 눌러서 버킷 생성 설정으로 들어간다. ⚡ 액세스 권한 변경 기본 설정으로는 모든 퍼블릭 액세스 차단으로 되어있는데, 퍼블릭 엑세스를 해주려면 모든 퍼블릭 엑세스 차단을 해제해야한다. 🔓 버킷 정책 변경 버킷 생성 후 버킷에서 권한탭을 들어가서 정책에서 편집을 ...
@Query에서 FK로 객체를 찾는 법
@Query에서 FK로 객체를 찾는 법 class User { @Id private String username; @ManyToOne private School school; } class School { @Id private String schoolName; @OneToMany...
클라우드 아키텍처 진화하기
천만 사용자를 위한 AWS 클라우드 아키텍처 진화하기 AWS는 전세계에 약 20개의 리전, 즉 거점을 제공함. 리전하나에는 최소 두 개이상의 AZ(가용영역)이라고 하는 논리적인 데이터 센터들의 클러스터가 존재한다. 전세계의 유저들에게 빠르게 컨텐츠를 제공하려면 CDN서비스가 필요하며 AWS는 CloudFront라고하는 CDN서비스를 제공하고...
Spring Boot에서 Request Parameter를 객체로 받는 법
Spring Boot에서 Request Parameter를 객체로 받는 법. @Getter @Setter public class QueryRequest { private userName; private userEmail; } @RestController @RequiredConstructor public class ...
EC2 보안 취약점
EC2 보안 취약점 라우팅 테이블에서는 VPC 내부, 외부로 나뉜다. 로드밸런서를 이용해서 igw가 연결안되어있는 VPC와 연결시켜준다. 외부 -> ELB -> VPC 내부 ELB에서 https만 열어주면 22번 포트같은 critical한 포트는 접근 X 3 teir = Presentation layer + Business laye...