본문 바로가기

728x90

개인 공부

(35)
[Spring] 로그 레벨(Log level) 로그레벨이란?로그 레벨은 로그 메시지의 중요도를 나타내는 기준입니다.각 로그 레벨은 애플리케이션에서 발생하는 이벤트의 중요성과 용도를 구분하는 데 사용됩니다.왜 로그를 따로 사용해야 할까?그냥 println으로 기록하면 되지 왜 로그를 따로 기록해주는 로깅 기능을 사용해야 할까?그 이유는 아래와 같다.모든 출력이 동일한 레벨로 처리되어 중요한 메시지와 디버깅 메시지를 구별하기 힘들다.콘솔에만 출력되는 print와 다르게 로깅 기능은 파일에 저장해주거나 외부 시스템으로 전송해준다.단순 문자열 출력만 가능한 print와 다르게 로깅 기능은 날짜/시간, 로그 레벨, 스레드 이름, 클래스 이름과 같은 포맷을 쉽게 설정해 가독성과 분석 가능성을 높여준다.과도한 print를 사용하면 애플리케이션 성능이 저하되는 반..
[HTTP] HTTP API 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. HTTP API HTTP API를 만들어보자. 요구사항 회원 정보 관리 API를 만들어라. 회원 목록 조회 회원 조회 회원 등록 회원 수정 회원 삭제 API URI 설계 URI(Uniform Resource Identifier) 회원 목록 조회 /read-member-list 회원 조회 /read-member-by-id 회원 등록 /create-member 회원 수정 /update-member 회원 삭제 /delete-member 개발자라면, URL 설계가 최선인지 항상 고민해야함 API URL 고민 리소스란 무엇일까? 회원을 등록하고 수정하는 과정 그 자체가 리소스가 아니다. 회원만 리..
[HTTP] HTTP 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. HTTP는 HyperText Transfer Protocol의 약자다. HTTP 메시지에 전송되는 것들 HTML, TEXT IMAGE, 음성, 영상, 파일 JSON, XML (API) 거의 모든 형태의 데이터 전송 가능 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 HTTP 역사 HTTP/0.9 1991년: GET 메서드만 지원, HTTP 헤더X HTTP/1.0 1996년: 메서드, 헤더 추가 HTTP/1.1 1997년: 가장 많이 사용, 우리에게 가장 중요한 버전 이후 나온 버전들은 성능 개선에 초점이 맞춰져있다. RFC2068 (1997) -> RFC2616 (1999) ->..
[HTTP] URI & Web browser request flow 해당 글은 김영한 모든 개발자를 위한 HTTP 웹 기본 지식을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 33day URI와 웹 브라우저 요청 흐름 URI (Uniform Resource Identifier) URL: 로케이터(locator) 리소스의 위치 URN: 이름(name) 리소스의 이름 URL은 리소스의 위치를 URN은 리소스의 이름을 담고있는걸 확인할 수 있다. 주로 URL을 사용한다. URI의 단어 뜻 Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL: Uniform Resource Locator URN: Uniform Resource Name URL..
[HTTP] HTTP 기본 개념 정리 이 글은 백엔드 개발자를 위해 필수적인 HTTP 개념을 정리한 포스트입니다. 김영한 님의 김영한 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 바탕으로 하되, 제 개인적인 해헉을 덧붙였습니다.벡엔드 개발자가 왜(why) HTTP에 대해 알아야 할까?대부분의 웹 애플리케이션은 HTTP 프로토콜을 기반으로 동작한다.HTTP는 요청과 응답을 위한 상태 코드를 제공한다. 백엔드 개발자는 이러한 상태 코드를 이해하고 처리해야 한다.HTTP 요청과 응답은 웹 애플리케이션의 성능에 큰 영향을 끼친다. 백엔드 개발자는 HTTP 헤더, 캐싱, 압축 등을 이해하여 웹 애플리케이션의 성능을 최적화할 수 있다.이 밖에도 여러 이유들이 있다.때문에 벡엔드 개발자를 희망한다면 HTTP에 대해 알아두는게 필수 라고 볼 수 있다..
[Spring] Scope & Provider 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 스코프와 Provider 저번에 배운 웹 스코프에서 request스코프에 대해 이해하고, 이를 코드로 짜보았다. request 스코프를 코드로 짜면서 내가 원했던것은 아래와 같다. UUID를 사용해 HTTP 요청을 구분할것 requestURL 정보를 넣어 어떤 URL을 요청해서 남은 로그인지 확인이 가능할것. 하지만, 코드를 짜고 실행하는 과정에서 오류가 발생했다. 그 이유는 스프링을 실행하는 시점에 싱글톤 빈은 미리 생성해서 주입이 가능하나, request 스코프 빈은 아직 생성되지 않았기 때문이다. 위 오류를 우리는 오늘 해결해볼것이다. Provider 사용 ObjectProvider를 사용해 오류..
[Spring] Web Scope 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하며 개인적인 견해가 들어간 글입니다. 웹 스코프 지금까지 싱글톤과 프로토타입 스코프를 학습했다. 싱글톤은 스프링 컨테이너의 시작과 끝까지 함께하는 매우 긴 스코프이고, 프로토타입은 생성과 의존관계 주입, 그리고 초기화까지만 진행하는 특별한 스코프이다. 이번에는 웹 스코프에 대해서 알아보자 웹 스코프의 특징 웹 스코프는 웹 환경에서만 동작한다. 웹 스코프는 프로토타입과 다르게 스프링이 해당 스코프의 종료시점까지 관리한다. 따라서 종료 메서드가 호출된다. 웹 스코프 종류 request: HTTP 요청 하나가 들어오고 나갈 때 까지 유지되는 스코프, 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고, 관리된다. session: HTTP S..
[Spring] Prototype Scope 해당 글은 김영한 스프링 핵심 원리 - 기본편을 보고 요약, 정리하면서 개인적인 견해가 들어간 글입니다. 빈 스코프 프로토타입 스코프 - 싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈이 생성될 때 프로토타입 빈도 함께 생성되기 때문에 문제가 발생한다. 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때 마다 항상 새로운 프로토타입 빈을 생성할 수 있을까? 스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. public class PrototypeProviderTest { @Test void providerTest() { AnnotationConfigApplicationContext ac = new..

728x90