백엔드

·백엔드/JAVA
1. java.lang 패키지java.lang 패키지는 자바 프로그래밍에서 가장 기본이 되는 클래스들을 포함하고 있다. 그렇기에 java.lang 패키지의 클래스들은 import 문 없이도 사용할 수 있게 되어 있다. 1) Object 클래스Object 클래스는 모든 클래스의 최고 조상이기 때문에 Object 클래스의 멤버들은 모든 클래스에서 바로 사용 가능하다.Object 클래스는 멤버 변수는 없고 오직 11개의 메서드만 가지고 있다. Object 클래스의 메서드설명protected Object clone()객체 자신의 복사본을 반환한다public boolean equals(Object obj)객체 자신과 객체 obj가 같은 객체인지 알려준다 (같으면 true)protected void finalize..
·백엔드/JAVA
1. 예외 처리1) 프로그램 오류 프로그램이 실행 중 어떤 원인에 의해서 오작동을 하거나 비정상적으로 종료가 되는 경우가 있다. 이런 결과를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 이를 발생하는 시점에 따라 두 가지로 나눌 수 있다.컴파일 에러 : 컴파일 시에 발생하는 에러런타임 에러 : 실행 시에 발생하는 에러  소스 코드를 컴파일하면 컴파일러가 소스코드(.java)에 대해 잘못된 구문, 오타 등의 기본적인 검사를 수행해서 오류가 있는지 알려준다. 컴파일러가 알려준 에러들을 모두 수정해서 컴파일을 성공적으로 마치고 나면, 클래스 파일(.class)가 생성되고, 생성된 클래스 파일을 실행할 수 있게 되는 것이다. 하지만 컴파일을 에러 없이 성공적으로 마쳤다고 해도 프로그램 실행 중에 에러가 ..
·백엔드/JAVA
1. 상속1) 상속의 정의와 장점상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 자바에서 상속을 구현하는 방법은 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써주기만 하면 된다.class Child extends Parent {}조상 클래스 = 부모 클래스 = 상위 클래스 = 기반 클래스자손 클래스 = 자식 클래스 = 하위 클래스 = 파생된 클래스  조상 클래스가 변경되면 자손 클래스는 자동적으로 영향을 받게 되지만, 자손 클래스가 변경되는 것은 조상 클래..
·백엔드/JAVA
1. 객체 지향 언어1) 객체 지향 언어의 역사객체 지향 이론의 기본 개념은 '실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물간의 상호작용이다.'라는 것이다. 실제 사물의 속성과 기능을 분석한 다음, 데이터(변수)와 함수로 정의함으로써 실제 세계를 컴퓨터 속에 옮겨 놓은 것과 같은 가상 세계를 구현하고 이 가상세계에서 모의실험을 함으로써 많은 시간과 비용을 절약할 수 있었다.  2) 객체 지향 언어 객체 지향 언어는 기존 프로그래밍언어에 몇 가지 새로운 규칙을 추가한 보다 발전된 형태의 것이다. 이러한 규칙들을 이용해서 코드 간에 서로 관계를 맺어 줌으로써 보다 유기적으로 프로그램을 구성하는 것이 가능해졌다 객체 지향 언어의 특징1. 코드의 재사용성이 높다    새로운 코드를 작..
·백엔드/SPRING
빈 생명주기 콜백 시작스프링 빈은 객체를 생성하고, 의존관계 주입이 다 끝난 다음에야 필요한 데이터를 사용할 수 있는 준비가 완료된다. 따라서 초기화 작업은 의존관계 주입이 모두 완료되고 난 다음에 호출해야 한다.  스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다. 또한 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다. 따라서 안전하게 종료 작업을 진행할 수 있다. [스프링 빈의 이벤트 라이프 사이클]스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출소멸전 콜백 : 빈이 소멸되기 직..
·백엔드/SPRING
다양한 의존 관계 주입 방법생성자 주입이름 그대로 생성자를 통해서 의존 관계를 주입 받는 방법이다생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다불변, 필수 의존 관계에 사용된다@Componentpublic class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; @Autowired public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository =..
·백엔드/SPRING
컴포넌트 스캔과 의존관계 자동 주입 시작하기지금까지 스프링 빈을 등록할 때, 자바의 코드의 @Bean이나 XML의 등을 통해서 설정정보에 직접 등록할 스프링 빈을 나열했었다. 하지만 이런 식으로 하다보면 수십, 수백 개의 빈을 일일이 등록하기도 귀찮고, 설정 정보도 커지고, 누락하는 문제도 발생할 수 있다. 그래서 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔이라는 기능을 제공한다. 또한 의존관계도 자동으로 주입하는 @AutoWired 라는 기능을 제공한다 @Configuration@ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configur..
·백엔드/SPRING
웹 애플리케이션과 싱글톤웹 애플리케이션은 보통 여러 고객이 동시에 요청을 한다.스프링 없는 순수한 DI 컨테이너는 요청이 올 때마다 새로운 객체를 생성한다 요청이 올 때마다 새로운 객체를 생성하면 메모리 낭비가 너무 심해진다.이에 대한 해결방안은 해당 객체가 딱 1개만 생성되고 공유하도록 설계하는 방법이다.  싱글톤 패턴싱글톤 패턴은 클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴이다//1. static 영역에 객체를 딱 1개만 생성해둔다.private static final SingletonService instance = new SingletonService();//2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용한다.public..
·백엔드/JAVA
1. 배열1) 배열(Array)이란?배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것- 배열은 '같은 타입'이어야 하며, 서로 다른 타입의 변수들로 구성된 배열은 만들 수 없다- 변수와 달리, 배열은 각 저장 공간이 연속적으로 배치되어 있다는 특징이 있다int[] score = new int[5]; // 5개의 int 값을 저장할 수 있는 배열을 생성한다 2) 배열의 선언과 생성배열을 선언하는 방법은 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호[]를 붙이면 된다대괄호는 타입 뒤에 붙여도 되고, 변수 이름 뒤에 붙여도 되지만 전자를 선호한다선언 방법선언 예타입[] 변수이름;int[] score;String[] name;타입 변수이름[];int score[];Str..
·백엔드/SPRING
스프링 컨테이너 생성// 스프링 컨테이너 생성ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext를 스프링 컨테이너라고 한다ApplicationContext는 인터페이스이고, AnnotationConfigApplicationContext는 이 인터페이스를 구현한 구현체이다. 스프링 컨테이너의 생성 과정1. 스프링 컨테이너 생성ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class) 코드를 통해서 스프링 컨테이너를 생성한다. 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 하는데 여기서는 Ap..
-minari-
'백엔드' 카테고리의 글 목록