목록전체 글 (82)
고딩왕 코범석
안녕하세요! 이번에는 ECS EC2 환경을 구축해보는 포스팅을 진행해보겠습니다. 순서는 아래와 같이 진행됩니다. 이미지 아키텍처 관련하여 이슈가 있습니다. ECR에 이미지를 푸시할 때 --platform arm64로 빌드 후 다시 푸시해주세요. 이 내용은 맨 밑에 '컨테이너 확인과 실수'에 작성되어있습니다. ECS 클러스터 생성 태스크 정의 생성 서비스 생성 컨테이너 확인과 실수 1. ECS 클러스터 생성 AWS 콘솔에서 'Elastic Container Service'를 검색하여 접속해줍니다. ECS 콘솔에서 '클러스터 > 클러스터 생성'을 눌러줍니다. 클러스터 이름, 네트워킹, 인프라를 설정해야하는데요. 네트워킹 항목에서 저번 ECS 준비 포스팅에서 로드밸런서를 만들 때 설정했던 서브넷(가용 영역, ..
안녕하세요! 이번 포스팅에서는 ECS를 적용하기 전, 사전에 준비할 항목들을 포스팅해보겠습니다. 준비할 항목들은 아래의 순서로 진행됩니다. 포스팅을 보기 전 실험삼아 배포해볼 애플리케이션 이미지를 준비해주세요! ECR 생성 ECR에 샘플 이미지 푸시 IAM 역할 생성 보안 그룹 설정 1. ECR 생성 AWS 콘솔에서 Elastic Container Registry를 검색 후 들어가줍니다. 그리고 리포지토리 생성을 위해 시작하기를 눌러줍니다. 프라이빗 리파지토리로 설정하고, 리포지토리 이름을 붙인후 밑으로 스크롤하여 생성합니다. 2. ECR에 샘플 이미지 푸시 이제 샘플로 만든 애플리케이션 이미지를 지금 만든 ECR에 푸시해보겠습니다. 생성 직 후 만든 리포지토리에 들어가서 푸시 명령 보기를 눌러줍니다. ..
안녕하세요! 이번 포스팅은 JPA에서 OneToMany 양방향 관계에서 자식 객체를 부모 객체에서 다뤘을 때 겪었던 이슈를 포스팅해보고자 합니다. 우선, 준비할 엔티티 객체는 다음과 같습니다. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @AllArgsConstructor(access = AccessLevel.PROTECTED) @Builder public class Product { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "PRODUCT_ID") private Long id; @Builder.Default @OneToMany( mappedBy..
안녕하세요! 이번 포스팅은 제가 jasypt를 사용하고 겪은 이슈에 대해 공유드리려 합니다. Jasypt? Jasypt는 홈페이지에서 다음과 같이 설명합니다. Jasypt is a java library which allows the developer to add basic encryption capabilities to his/her projects with minimum effort, and without the need of having deep knowledge on how cryptography works. 직역해보면 개발자들의 프로젝트를 기본적으로 암호화 해줄수있게 해주고 보안적인 지식이 깊지 않더라도 쉽게 적용할 수 있는 자바 라이브러리 라고 합니다. 사용 방법 우선 build.gradle에..
안녕하세요! 이번 포스팅에서는 AOP에 대해 포스팅해보려고 합니다. 김영한 님의 스프링 핵심 원리 - 고급편을 참조하여 정리했습니다! 🙆🏻♂️ Aspect(관점)와 AOP Aspect는 부가 기능과 부가 기능을 어디에 적용할지 정의한 것입니다. 어드바이저(포인트컷 + 어드바이스)도 개념상 하나의 Aspect라 볼 수 있습니다. 관점이라는 말 대로 애플리케이션을 바라보는 관점을 하나의 기능에서 횡단 관심사 관점으로 달리 보는 것이라고 할 수 있습니다. 메서드에 공통으로 들어가는 로직(트랜잭션 호출, 로깅 등등..)이라고 이해하면 될 것 같습니다. 이렇게 Aspect를 사용한 프로그래밍 방식을 AOP(Aspect-Oriented-Programming)이라고 합니다. 🖥 AOP 적용 방식 1. 컴파일 시점 ..
데이터를 저장하는 장치로 기억장치 혹은 저장장치로 불린다. 일반적으로 메모리라고 하면 주기억장치인 RAM을 의미한다. 위 사진은 메모리 계층구조이며 읽기와 쓰기를 하는 주체는 CPU다. CPU와 가까이 위치한 저장장치일수록 접근 시간이 빠르다. 또한, CPU는 디코딩 속도 등의 문제로 작은 크기의 메모리에 더 빠르게 접근할 수 있다. 그런 이유로 CPU와 가까이 위치할수록 더 작은 크기를 갖게 된다. 기억장치 구분 Register : 명령어, 주소, 데이터등의 임시 데이터를 저장하는 공간이고, CPU 내부에 존재하기 때문에 가장 빠른 접근시간을 갖는다. Cache : 자주 사용되는 데이터는 계속 쓰이기 때문에 이런 데이터를 굳이 RAM이나 더 접근 거리가 먼 저장 장소에 위치할 이유가 없다. 자주쓰는 데..
컴퓨터 시스템은 기계적 장치들인 하드웨어와 이 하드웨어의 동작을 지시하고 제어하는 명령어 집합인 소프트웨어로 구성되어있다. 하드웨어 하드웨어는 중앙처리장치인 CPU, 기억장치인 RAM과 HDD, 입출력 장치들로 구성되는데 그림과 같이 구성되어 진다. CPU 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어한다. CPU는 비교와 연산을 담당하는 ALU(산술논리연산장치), 명령어의 해석과 실행을 담당하는 제어장치, 속도가 빠른 데이터 기억장소인 레지스터로 구성되어 있다. 산술논리연산장치(ALU) 산술연산(사칙연산)과 논리연산(AND, OR...)을 수행하며 연산에 필요한 데이터들을 레지스터에서 가져오고, 연산 결과를 다시 레지스터에게 보내는 역할을 한다. 제어장치(CU) 명..
안녕하세요! 이번 시간에는 빈 후처리기에 대해 포스팅해보겠습니다. 해당 포스팅은 스프링 핵심 원리 - 고급편 을 정리한 포스팅입니다. 우선, 저는 빈 후처리기를 강의를 통해 처음 들었습니다. 프록시 객체를 생성하면서 문득 들었던 생각이 있었는데, 그럼 Component Scan 대상 객체의 프록시를 Configuration 없이 스프링 컨테이너에 등록할 수는 없을까? 였습니다. 🤔 빈 후처리기??? 스프링은 빈으로 등록된 객체를 생성하고, 컨테이너에 등록합니다. 빈 후처리기는 객체를 빈으로 등록하기 전에 조작하는 객체 이며, 다음과 같은 라이프사이클을 가집니다. 생성 : 스프링 빈 대상이 되는 객체를 생성 전달 : 생성된 객체를 빈 저장소에 등록하기 직전, 빈 후처리기로 전달 후처리 작업 : 전달된 스프..