본문 바로가기

분류 전체보기

(27)
Test ) @SpringBootTest와 @WebMvcTest의 대한 궁금증 & 나의 사용방식 @WebMvcTestController와 관련 Bean만 로드 -> Service & Repository Bean 로드 x필요한 컨트롤러 및 관련 컴포넌트만 초기화.-> 빠른 테스트 가능MockBean, MockMvc를 사용해서 Test사용 예시웹 계층(Controller)만 테스트할 때 사용@SpringBootTest전체 Application Context 로드-> 모든 Bean 로드-> 테스트가 실제 애플리케이션과 유사하게 구성모든 계층을 로드 및 초기화-> 다소 느린 테스트MockBean, MockMvc이 아닌 실제 Service, Repository로 Test 가능-> 주로 RestTemplate, TestRestTemplate사용 예시애플리케이션 통합테스트여러 계층이 연동되는 로직테스트실제 환경..
JPA ) 더티체킹의 대한 궁금증 & 나의 사용방식 더티체킹 (Dirty Checking)이란?영속성 컨텍스트가 관리하는 엔티티의 상태가 변경되었을 때, Transaction에 끝나는 시점에 DB에 적용하는 기능 영속성 컨텍스트란?엔티티 객체들을 관리하는 일종의 가상 공간트랜잭션 시작 시, 영속성 컨텍스트 활성화. 트랜잭션 종료 시 영속성 컨텍스트가 종료. 예시이전 코드@Transactionalpublic void updateEntity(Long id) { // 1. 엔티티 조회 MyEntity entity = entityManager.find(id); // 2. 필드 값 변경 entity.setName("Updated Name"); // 3. 변경된 entity 저장 entityManager.save(entity);} 수..
Redis ) Keyspace Notifications에 대한 궁금증 및 내가 사용했던 방법 Keyspace Notifications란?특정 키에 대해 변경 사항(예: 만료, 삭제, 수정 등)이 발생했을 때 알림을 제공하는 기능 Keyspace Notifications 사용 방법기본적으로 비활성화되어 있습니다.-> 활성화하려면 Redis 설정 파일(redis.conf) 수정 or Redis CLI를 사용하여 설정.Redis 설정에서 활성화redis.conf 파일에서 다음과 같이 설정합니다:notify-keyspace-events Exnotify-keyspace-events ExCLI를 통해 활성화Redis CLI에서 동적으로 설정여기서 Ex는 이벤트 유형을 나타냅니다:E: 일반 이벤트x: 만료(expired) 이벤트CONFIG SET notify-keyspace-events Ex Keyspace..
Redis Setting에 대한 궁금증 // 직접 연결 + 직렬화 미설정@Beanpublic LettuceConnectionFactory redisConnectionFactory() { return new LettuceConnectionFactory();}@Beanpublic RedisTemplate redisTemplate() { RedisTemplate template = new RedisTemplate(); template.setConnectionFactory(redisConnectionFactory()); return template;} // 파라미터 연결 + 직렬화 설정@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory connectionFactory)..
CS스터디용 이미지1 http://www.kocw.net/home/search/kemView.do?kemId=1357936 운영체제론운영체제라는 주제에서는 CPU, Memory, I/O 등의 컴퓨터 자원을 효율적으로 관리하는 방법들과 사용자에게 인터페이스를 제공하는 기능들에 대해 공부한다.www.kocw.net2번 프로세스와 스레드 관리 pdf
싱글톤 (SingleTon Pattern) 1. 싱글턴 패턴의 기본 개념- 오직 하나의 인스턴스만을 생성하고, 그 인스턴스에 전역적으로 접근할 수 있도록 보장하는 디자인 패턴   ❗ 시스템에서 특정 클래스의 인스턴스가 하나만 존재해야 하는 경우에 사용한다. 2. 싱글턴 패턴 구현 (JAVA)- 미리 생성 유무에 따라서 게으른 초기화(Lazy Initialization)와 이른 초기화(Eager Initialization)로 나뉜다. 1. 게으른 초기화(Lazy Initialization) : 필요할 때까지 인스턴스를 생성하지 않는 방식- 장점 : 사용하지 않을 때는 메모리에 할당 X- 단점 : 인스턴스를 요청할 때마다 새로 생성하는 지연이 있을 수 있음public class Singleton { private static Singleton ..
TCP와 UDP의 차이점 TCP는 연결 지향형 프로토콜이고 UDP는 데이터를 데이터그램단위로 전송하는 프로토콜입니다. TCP는 가상 회선을 만들어 신뢰성을 보장하도록(흐름 제어, 혼잡 제어, 오류 제어) 하는 프로토콜로 따로 신뢰성을 보장하기 위한 절차가 없는 UDP에 비해 속도가 느린편입니다. TCP는 그래서 파일전송과 같은 신뢰성이 중요한 서비스에 사용되고, UDP는 스트리밍, RTP와 같이 연속성이 더 중요한 서비스에 사용됩니다. 면접 질문 참고사이트 https://github.com/ksundong/backend-interview-question GitHub - ksundong/backend-interview-question: 백엔드 개발자로 입사를 준비하며 받았던 질문, 예상했던 질 백엔드 개발자로 입사를 준비하며 받았..
웹 사이트 접속하는 과정 브라우저가 URL에 적힌 값을 파싱해서 HTTP Request Message를 만들고, OS에 전송 요청을 합니다. 이 때, Domain으로 요청을 보낼 수 없기 때문에 DNS Lookup을 수행합니다. DNS 룩업 과정은 크롬의 경우 브라우저 → hosts 파일 → DNS Cache의 순서로 도메인에 매칭되는 ip를 찾습니다. 일반적으로 설명하는 DNS Lookup은 루트 도메인서버에서부터 서브도메인 서버순으로 찾게됩니다. 이 요청은 프로토콜 스택이라는 OS에 내장된 네트워크 제어용 소프트웨어에 의해 패킷에 담기고 패킷에 제어정보를 덧붙여 LAN 어댑터에 전송하고, LAN 어댑터는 이를 전기신호로 변환시켜 송출합니다. 패킷은 스위칭 허브 등을 경유하여 인터넷 접속용 라우터에서 ISP로 전달되고 인터넷으..
2. 개발에 앞서 알면 좋은 기초 지식 1. 서버 간 통신 MSA (Microservice Architecture) 서비스 규모를 작게 나누어 구성한 아키텍처를 의미 각 서비스 간에 통신을 '서버 간 통신' 한 서버가 다른 서버에 통신을 요청하는 것을 의미 한 대는 서버, 다른 한 대는 클라이언트가 되는 구조 가장 많이 사용되는 방식은 http / https 방식 2. 스프링 부트의 동작 방식 spring-boot-starter-web 모듈을 사용하면 기본적으로 Tomcat을 사용하는 스프링 MVC 구조를 기반으로 동작 서블릿 : 클라이언트의 요청을 처리하고 결과를 반환하는 자바 웹 프로그래밍 기술 서블릿 컨테이너 서블릿을 관리, 서블릿 인스턴스를 생성하고 관리하는 역할 수행 특징 서블릿 객체의 생명주기 관리 서블릿 객체를 싱글톤으로 관리 멀..
1장 스프링 부트란? 1. 스프링 프레임워크 자바 기반의 애플리케이션 프레임워크로 자바에서 가장 많이 사용하는 프레임워크입니다. 2. 스프링 특징 제어 역전 (IoC) 사용할 객체를 직접 생성 X -> 객체의 생명주기 관리를 '외부'에 위임 외부 : 스프링 컨테이너 or IoC 컨테이너 의미 의존성 주입 (DI) 제어 역전의 방법 중 하나 사용할 객체를 직접 생성하지 X -> 외부 컨테이너가 생성한 객체를 주입받아 사용 방법 생성자 -> 레퍼런스 객체 없이는 객체 초기화 x (공식 문서에서 권장) 필드 객체 선언 setter 메서드 @Autowired로 주입가능 스프링 4.3 이후 버전은 생성자를 통해 의존성을 주입 시 @Autowired 생략 가능 관점 지향 프로그래밍(AOP) 'OOP'를 더욱 잘 사용하도록 돕는 개념 O..