본문 바로가기
728x90
반응형

공부합시당 💙156

스프링, 스프링 부트의 등장 본 포스팅은 스프링 부트 핵심 원리와 활용 / 김영한 강의를 듣고 정리하는 시리즈 포스팅입니다. EJB EJB 인터페이스에 의존적으로 개발해야함 값 비싼 비용 스프링 프레임워크 DI 컨테이너, MVC, DB 접근 기술 제공 다양한 라이브러리를 통합 (편리함) 개발자의 생산성을 높임 자바 생태계 (사실상) 표준 프레임워크 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트 웹 기술: 스프링 MVC, 스프링 WebFlux 데이터 접근 기술: 트랜잭션, JDBC, ORM, XML 기술통합: 캐시, 이메일, 원격 접근, 스케줄링 테스트: 스프링 기반 테스트 -> but 기능이 많아지면서 셋팅이 너무 복잡해짐... 초기 셋팅 지옥... 스프링 빈 등록 지옥... 스프링 부트 [핵심 기능] WAS - Tomcat .. 2023. 3. 5.
스프링 부트의 핵심 기능 본 포스팅은 스프링 부트 핵심 원리와 활용 / 김영한 강의를 듣고 정리하는 시리즈 포스팅입니다. 스프링 부트의 핵심 기능 내장 서버 - 톰캣 등 별도 서버 설치할 필요 없음 자동 라이브러리 관리 - best practice 기반으로 라이브러리를 자동으로 추천함 자동 구성(Auto Configuration) - 스프링 설정을 자동화함 외부 설정 모니터링과 관리 기능 2023. 3. 4.
기술 면접 기출 - Java 예외(Exception) 처리 방법 Error vs Exception Error: JVM 실행에 문제가 생김. 보통 시스템 리소스 문제로 발생(시스템 충돌, 메모리 부족 등) Exception: 사용자의 잘못된 조작이나 개발자가 작성한 코드의 오류로 발생(런타임, 컴파일 시 발생) Exception은 기본적으로 문제가 발생하면 어플리케이션이 종료되도록 하지만, 자바에서는 예외 처리를 통해 프로그램이 정상 동작 할 수 있도록 도와둔다. 자바에서는 예외를 클래스로 지정했다. 모든 예외 클래스는 java.lang.Exception 클래스에 저장되어 있다. 예외 처리 코드 예외가 발생하더라도 프로그램이 갑작스럽게 종료되지 않고 정상 실행될 수 있도록 처리하는 코드다. 예외 발생 가능성이 있는 코드를 try ~ catch 문으로 감싸준다. 이 때 .. 2023. 3. 1.
기술 면접 기출 - Spring Bean 객체의 생명주기 스프링 컨테이너는 Bean 객체를 관리한다. 필요한 곳에 의존성 주입을 하는 것 뿐만 아니라 생성과 소멸 - 생명 주기(Lifecycle)을 관리한다. 스프링 컨테이너는 초기화될 때 Bean 객체들을 등록, 생성, 주입하고 종료할 때 Bean 객체들을 소멸시키면서 그 생명 주기를 관리한다. 스프링 컨테이너의 생명주기 스프링 컨테이너가 설정 파일(어노테이션, xml, 코드 등)을 읽어서 Bean 객체를 생성한다. (인스턴스화 한다.) 프로퍼티 설정 파일을 읽어서 생성한 Bean 객체에 의존성을 주입한다. 등록된 Bean 객체는 필요한 곳에서 사용되다가 컨테이너가 종료되면 함께 소멸된다. bean 객체의 생명 주기 bean 객체 생성 - 스프링 컨테이너 초기화 시 제일 먼저 빈 객체를 생성한다. 의존 설정 .. 2023. 3. 1.
기술 면접 기출 - Race condition (경쟁 상태) Race Condition race condition이란 여러 개의 프로세스가 공유 자원에 동시에 접근할 때 실행 순서에 따라 결과값이 달라질 수 있는 상태이다. 자료의 일관성을 해칠 수 있음으로 멀티 프로세스 환경에서는 경쟁 상태에 대한 대비가 필요하다. 발생하는 경우와 해결 방법 커널 코드 실행 중에 인터럽트가 발생할 경우 - 커털이 가진 전역 변수는 모든 프로세스의 공유물이므로 경쟁 상태의 가능성이 있다. 이 경우 커널 모드에서 작업을 수행하는 동안에는 인터럽트를 비활성화 시켜 인터럽트가 CPU 제어권을 가져가지 못하도록 하여 해결 할 수 있다. 프로세스가 시스템 콜을 하여 커널모드로 진입하여 작업을 수행하는 도중에 문맥 교환이 발생한 경우 - 프로세스A가 커널모드에서 데이터를 조작하던 중 시간이 .. 2023. 3. 1.
728x90
반응형