본문 바로가기

분류 전체보기

(42)
스프링 컨테이너는 스프링 빈을 어떻게 싱글톤으로 관리할까? 🔥 스프링 컨테이너가 이미 존재하는 객체 인스턴스를 반환하는 @Bean 을 어떻게 처리하는지 알아보도록 한다. @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPoli..
상수와 final 키워드 상수상수는 변수와 달리 변하지 않는 수이다.자바의 상수에는 리터럴과 심볼릭 상수가 있다.리터럴 상수값 또는 리터럴 값을 의미정수, 실수, 문자, 문자열, 불리언이 리터럴에 해당된다.리터럴은 값 그 자체이므로 리터럴에 리터럴을 대입할 수 없다.10 = 100; // 10이라는 정수에 100을 대입할 수 없음"words" = "abcd"; // "words"라는 문자열에 "abcd"라는 문자열을 대입할 수 없음true = 100; // true라는 불리언값에 정수 100을 대입할 수 없음리터럴 상수도 기본 타입이 존재한다.예를들어 정수는 기본적으로 int 타입, 실수는 double 타입이 적용된다.리터럴 Workflow변수를 선언하면, 수는 operand stack 공간에 일시적으로 저장되었다가 변수라는 메..
Codedeploy 배포 에러 [The deployment failed because no instances were found for your deployment group.] 오류코드 The deployment failed because no instances were found for your deployment group. Check your deployment group settings to make sure the tags for your Amazon EC2 instances or Auto Scaling groups correctly identify the instances you want to deploy to, and then try again. 문제 AWS CodeDeploy CD설정 중 발생한 오류 상황 github actions, AWS ec2, S3, CodeDeploy를 사용하여 CI/CD 구현 원인 어떤 인스턴스에 배포를 해야할지 식별을 할 수 없어 발생..
CORS란? CORS의 뜻은 교차 출처 리소스 공유(Cross-Origin Resource Sharing)이다. CORS에 대해 자세히 공부하기 전까진 보안 때문에 데이터의 공유를 막는 체제에 가깝게 생각 했지만 CORS는 오히려 서로 다른 출처끼리 리소스(데이터)를 공유하게 만들기 위한 체제였다. 따라서 현재 웹 생태계에서 모르면 절대 안되는 중요한 개념이기 때문에 내용을 정리해보려 한다.   SOPCORS를 알기 전에 SOP(Same-Origin Policy)에 대해 알 필요가 있다. SOP는 동일 출처 정책을 의미하는데, 간단히 말하자면 다른 출처에서 가져오는 리소스를 제한하는 보안 방식이다. 지금은 다른 출처의 리소스를 가져와 사용하는 것은 흔한 일이지만 이전에는 SOP가 강력히 적용되어 있어 다른 출처의 리..
JVM JVM이란? JVM(Java Virtual Machine)은 bytecode를 실행하기 위해 필요한 가상머신이다. bytecode는 사용자가 작성한 순수한 Java source file이 아닌, 컴파일러에 의해 컴파일된 파일을 의미하며, JVM은 컴파일된 bytecode를 운영체제에 알맞은 기계어로 번역하여 실행가능하게 만든다. 즉, OS가 달라도 Java실행에 필요한 컴파일러와 JVM이 있다면 실행가능하다는 말이며 OS에 종속적이지 않다는 말이 된다. 다르게 말하면 JVM에 종속적인 특징을 가진다고도 할 수 있다. JVM의 구성요소 실행과정을 매우 간소화해보자면, 클래스로더가 바이트코드를 메모리에 적재하고 Execution Engine을 통해 실행하며, 실행 방식은 인터프리터 방식과 JIT 컴파일러 방..
객체지향이란 무엇인가? 개념객체지향, object-oriented programming(OOP)란 무엇인가?프로그램의 설계방법론이고 개념이다.오브젝트를 기본 단위로 나누고, 오브젝트와 오브젝트가 상호작용하게 만들어 각자의 역할을 수행하게 한다.Java의 경우 class를 정의하여 객체(오브젝트)를 생성하고 관리한다. 주의해야 할 것은 객체지향은 설계방법론이고 개념이므로, 어떤 언어 자체를 객체지향이라고 정의할 수 없다.현재 웹 개발 언어로 사용되는 많은 언어들은 객체지향적인 개념으로 설계되었거나, 지원을 하고 있는 것이므로 개념 의 영역으로 생각해야 한다.  특징객체지향은 다른 특징들도 있지만 대표적으로 캡슐화, 상속, 다형성의 특징을 갖는다. 캡슐화캡슐화란 클래스 안에 변수와 함수를 작성하여 하나의 단위로 정의하는 것이다. ..
String의 특징에 대해 알아보자 (String Constant Pool) String 자바에서 문자열을 사용할 때 흔히 쓰는 자료형이다. Primitive Type처럼 빈번하게 사용되지만, String은 Primitive Type이 아닌 char의 배열로 이루어진 Class자료형이라 할 수 있다. String의 경우 특별한 특징들을 가지고 있는데, String의 값은 불변성을 가지며, String은 두가지의 메모리를 사용할 수 있다. 불변성을 가진다는 것은 무엇이고, 두가지의 메모리를 사용한다는 것은 어떤 의미인지 정리해보려 한다. String Constant Pool과 Heap String은 사용빈도가 매우 높기 때문에 조금 더 효율적으로 사용할 수 있는 String Pool에 저장하는 방식을 택했다. String Pool에 저장한다는 것은 같은 문자열을 공유한다는 것을 의..
String과 char의 변환과 String 요소 접근 String의 요소에 접근하기 String은 배열처럼 요소에 접근이 불가능하다. charAt()함수는 요소를 반환한다. String str = "apple"; str.charAt({num}); // num에 index를 의미한다. 해당 index의 요소를 반환한다. char배열을 String으로 전환 인자 할당 char[] charArr = { 'a', 'p', 'p', 'l', 'e' }; String str = new String(charArr); String.valueOf() 사용 char[] charArr = { 'a', 'p', 'p', 'l', 'e' }; String str = String.valueOf(charArr); StringBuilder char[] charArr = { 'a', '..