본문 바로가기

kdmstj

(58)
[Spring] 스프링 컨테이너와 빈 객체의 생명 주기를 알아보겠습니다. Spring 의 생명주기를 알고자 한다면,,,Spring의 생명주기는 스프링 컨테이너와 그 안에서 관리되고 있는 스프링 빈의 생명주기에 따릅니다. 스프링 컨테이너는 애플리케이션의 설정 정보를 바탕으로 애플리케이션에서 사용할 객체(빈)를 생성하고 관리합니다. 이 과정에서 스프링 컨테이너와 빈 객체는 각자의 생명주기를 가지며, 이 생명주기는 서로 밀접하게 연결되어 있습니다. 스프링 컨테이너의 생명주기스프링 컨테이너의 생명주기는 크게 세 단계로 나눌 수 있습니다: 1. 컨테이너 초기화: 스프링 컨테이너를 생성하고 설정 파일 또는 클래스에서 정의된 빈들을 초기화합니다.2. 컨테이너 사용: 애플리케이션이 실행되는 동안, 컨테이너는 빈을 제공하고, 빈은 필요한 작업을 수행합니다.3. 컨테이너 종료: 애플리케이션이 ..
[Spring] 스프링 컨테이너와 빈 스프링 컨테이너란? 1. 자바 객체의 생명주기를 관리하고 2. 생성된 자바 객체에게 부가 기능을 제공한다. 스프링에서는 자바 객체를 '빈(Bean)'이라고 부른다. 즉, 스프링 컨테이너는 스프링 빈의 생명주기를 관리하고, 생성된 스프링 빈에게 부가 기능을 제공한다. 스프링 컨테이너는 ApplicationContext라고도 부른다. 좀 더 상세하게는 스프링 컨테이너는 ApplicationContext가 상속하고 있는 인터페이스 'BeanFactory'와 구분해서 사용하지만, BeanFactory를 직접 사용하는 경우는 거의 없어 일반적으로 ApplicationContext를 스프링 컨테이너라고 한다. BeanFactory는 스프링 컨테이너의 최상위 인터페이스다. 1. BeanFactory는 빈의 생성과 관..
[Java] 정렬 기준 Comparator과 Comparable 에 대해 알아보겠습니다. Comparator과 Comparable의 필요성정렬을 하기 위해서는 '기준'이 필요합니다. 기본적으로 int, double 과 같은 primitive 타입의 변수는 자연스럽게 대소 관계가 존재하기 때문에 정렬 기준을 쉽게 설정할 수 있습니다. 예를 들어, 1  하지만 객체는 정렬 기준이 자동으로 존재하지 않습니다. 예를 들어, 아래와 같은 Person 클래스를 정의했다고 가정해보았습니다.public class Person{ int age; int phoneNumber; public Person(int age, int phoneNumber){ this.age = age; this.phoneNumber = phoneNumber; }}Person p1 = ne..
[Java] 배열을 정렬해보겠습니다. 배열 정렬Java 에서 배열을 정렬하기 위해서는 Arrays.sort() 메서드를 사용합니다. 이 메서드를 통해 int 형 배열을 오름차순으로 정렬할 수 있습니다. 이때, 정렬된 배열은 새로 반환되는 것이 아니라, 원본 배열 자체가 정렬됩니다.int[] arr = new int[]{34, 100, 50, 27};Arrays.sort(arr);System.out.println(Arrays.toString(arr)); //[27, 34, 50, 100] Arrays.sort() 메서드는 내부적으로 Dual-Pivot QuickSort 알고리즘을 사용하여 배열을 정렬합니다.public static void sort(int[] a) { DualPivotQuicksort.sort(a, 0, a.len..
[DevOps] CodeDeploy로 Spring Boot 프로젝트 CD 적용하기 프로젝트를 진행할 때 변경한 코드가 올려져 있는 Github Repository로 부터 서버에서 pull해서 build하고 deploy하는 과정이 너무 번거로웠다. 나는 이러한 문제를 해결하기 위해서 Github Actions를 사용하여 Repository에 특정한 이벤트(나와 같은 경우 pull request)가 발생하면 자동으로 빌드하고 빌드된 프로젝트 파일을 AWS S3에 올리도록 하였다(CI 과정). 그 후는 Github Actions가 CodeDeploy에게 배포 명령을 내리고 AWS Code Deploy Agent가 appspec.yml의 절차를 따라 배포 서버(EC2)에 배포하는 과정을 거친다(CD 과정). 이번 포스팅은 GithubActions로 S3에 저장된 빌드 파일은 EC2 인스턴스로..
[DevOps] Github Actions으로 Spring Boot 프로젝트 CI 적용하기 프로젝트를 진행할 때 변경한 코드가 올려져 있는 Github Repository로 부터 서버에서 pull해서 build하고 deploy하는 과정이 너무 번거로웠다. 나는 이러한 문제를 해결하기 위해서 Github Actions를 사용하여 Repository에 특정한 이벤트(나와 같은 경우 pull request)가 발생하면 자동으로 빌드하고 빌드된 프로젝트 파일을 AWS S3에 올리도록 하였다. 그 후는 AWS Code Deploy가 배포 서버(EC2)에 배포하는 과정을 거친다. 이번 포스팅은 GithubActions으로 Spring Boot 프로젝트 CI 적용하는 부분을 작성하였다. Github Actions 구성요소 Github Actions Workflow의 각 job은 가상 머신 runner 또는..
원티드 프리온보딩 백엔드 인턴십 6차 합격 🎉 코드스테이츠 백엔드 과정을 마치고 4개월이 지난 시점에서 혼자 CS 지식과 코테 공부를 하며 취업을 준비하였지만현업에서 사용하고 고민하는 부분이 무엇인지에 대해 인사이트를 얻고 싶었다.  그러던 도중 원티드에서 모집하고 있는 프리온보딩 백엔드 인턴십 8월 공고가 떴다! 백엔드 | 프리온보딩 인턴십 8월 | 원티드프리온보딩 인턴십은 동료들과 함께 다양한 기업의 기술과제를 수행하는 교육형 인턴십 프로젝트입니다. 취업(이직)을 희망하는 신입/주니어라면 누구나 참여 신청할 수 있습니다.www.wanted.co.kr 약 일주일간 Java/Spring Boot 기술 스택을 선택하여 게시판을 관리하는 RESTful API를 개발하는 사전 과제를 진행하였다.사전과제에서 통합 테스트 또는 단위 테스트 코드를 추가한 경우..
[AWS] Spring 2.7 버전에서 profile에 따른 파라미터 AWS Parameter Store에 등록하기 깃허브에 데이터베이스의 암호와 같은 민감한 정보를 올리면 위험하기에 민감한 정보는 따로 저장해야 한다고 한다. 나는 AWS Parameter Store에 저장하여 불러오는 방식을 택하였다. Spring Cloud 버전 확인 자신의 Spring Boot 프로젝트 버전과 맞는지 확인하고 공식 문서에서 자신의 버전과 맞는 Spring Cloud를 결정해야 한다. 이 글은 다음과 같은 환경에서 진행했다. SpringBoot : 2.7.12 Java : 11 SpringCloud : 2021.0.5 요약 1. Spring Boot 프로젝트 설정 2. AWS Parameter store 설정 3. 콘솔에서 AWS Parameter Store 불러오기 1. Spring Boot 프로젝트 설정 1. build.grad..