profile
백엔드 개발자 지망생
태그 목록
전체보기 (86)Spring(28)Spring Boot 3.0(28)Spring boot(22)Java(20)network(10)http(8)django(7)MVC(6)python(5)설정(5)알고리즘(5)JDBC(5)docker(4)설치(4)JavaScript(4)Java 8(4)검증(4)modelattribute(3)예외 처리(3)RequestMapping(3)application.properties(3)HTTP 요청 조회(3)람다(3)typescript(3)exception(3)lambda(3)db(2)validator(2)HttpServletRequest(2)트랜잭션(2)transaction(2)Controller(2)bean validation(2)build(2)국제화(2)구현(2)Thymeleaf(2)queue(2)REST API(2)JVM(2)RequestBody(2)stream(2)filter(2)HttpMessageConverter(2)@ExceptionResolver(1)원자성(1)destructuring assignment(1)cors(1)JDK 동적 프록시(1)component(1)errors(1)DriverManager(1)transactional(1)final(1)격리성(1)LocaleChangeInterceptor(1)ERD Cloud(1)자료구조(1)인프런(1)Write Skew(1)API(1)ORM(1)schema(1)컨버터(1)dirty read(1)header(1)jsr-380(1)@PathVariable(1)framework(1)@ResponseBody(1)OOP(1)트랜잭션 프록시(1)stateCode(1)List(1)Session & cookie(1)@SessionAttribute(1)related(1)stack(1)UncheckedException(1)NumberFormatAnnotationFormatterFactory(1)phantom read(1)lazy evaluation(1)컴파일 과정(1)garbage collector(1)Datasource(1)logback(1)REST(1)DateFormatter(1)ResponseEntity(1)함수형 인터페이스(1)DAO(1)Transaction Proxy(1)세션(1)Interceptor(1)data scraping(1)Repeatable read(1)interface default method(1)Request(1)Response(1)FieldError(1)snapshot(1)@Valid(1)Django REST framework(1)nodejs(1)코딩테스트(1)함수형 프로그래밍(1)ConversionService(1)재귀 함수(1)LocaleResolver(1)jsessionid(1)prefetch related(1)FormattingConversionService(1)red black tree(1)추상 클래스(1)callback(1)React(1)Slf4j(1)PECS(1)Locale(1)@ExceptionHandler(1)collections(1)garbage collection(1)Read-uncommitted(1)DefaultHandlerExceptionResolver(1)스트림(1)isolation level(1)ValidationAutoConfiguration(1)접근 제한(1)ConfitionalGenericConverter(1)try catch finally(1)connection pool(1)StringBuilder(1)Transaction Template(1)MVC 구조(1)HandlerExceptionResolver(1)SQLException(1)autocloseable(1)프리캠프(1)뷰 템플릿(1)multipart/form-data(1)java virtual machine(1)abstract class(1)java collections framework(1)지연 연산(1)annotation(1)Statement(1)reject(1)Optional Class(1)스프링 핵심 원리 - 고급편(1)package.json(1)HTTP message(1)요청(1)PathPattern(1)Call By Value(1)SOLID(1)MultipartResolver(1)ResponseStatusException(1)ViewTemplate(1)문법(1)PreCamp(1)graphql(1)typeOrm(1)Comparable Interface(1)Data Crawling(1)ESLint(1)Prettier(1)ResponseStatusExceptionResolver(1)코드캠프(1)Call By Reference(1)RuntimeException(1)RestController(1)ConverterFactory(1)Controller 발전 과정(1)method(1)Backend(1)tomcat(1)특징(1)가비지 컬렉터(1)Java 7(1)프록시(1)Generic(1)deploy(1)template literals(1)@ResponseStatus(1)JWT(1)RequestDispatcher(1)drf(1)한정적 와일드 카드(1)Converter(1)Formatter(1)트랜잭션 전파(1)Transaction Propagation(1)connection(1)GenericConverter(1)messages.properties(1)Husky(1)OOP의 4가지 특징(1)interface(1)인터페이스(1)MultipartRequest(1)String(1)일관성(1)JCF(1)포맷터(1)BFS(1)controlleradvice(1)헤더 조회(1)ObjectError(1)제네릭(1)Lost Update(1)DispatcherType(1)StringBuffer(1)@RequestPart(1)functional interface(1)커넥션 풀(1)this(1)가비지 컬렉션(1)DefaultMessageCodesResolver(1)mysql(1)메서드 참조(1)프록시 체이닝(1)FilterRegistrationBean(1)GC(1)WebFilter(1)지속성(1)그리디(1)EntityClass(1)애노테이션(1)MultipartFile(1)Log4j(1)erd(1)effectively final(1)정규식(1)try-with-resources(1)log(1)AcceptHeaderLocaleResolver(1)TransactionDefinition(1)Throwable cause(1)트랜잭션 AOP(1)Reflection(1)구조분배할당(1)Read-committed(1)restapi(1)spring mvc(1)BasicErrorController(1)명령어(1)하한 경계 와일드 카드(1)CodeCamp(1)템플릿 리터럴(1)@CookieValue(1)Comparator Interface(1)BindingResult(1)modeling(1)CookieLocaleResolver(1)RequestHeader(1)메시지(1)Configuration(1)WebConversionService(1)errors.properties(1)HttpServletResponse(1)github(1)Multipart(1)객체지향(1)인터셉터(1)rejectValue(1)장점(1)정적 리소스(1)격리성 수준(1)cookie(1)NestJS(1)JVM 구성요소(1)@RequestParam(1)Java 5(1)VO(1)클래스 정보(1)Database(1)Map(1)FixedLocaleResolver(1)DFS(1)HttpSession(1)디자인 패턴(1)응답(1)resultset(1)HttpEntity(1)ErrorMvcAutoConfiguration(1)DB Lock(1)JVM 저장소(1)ACID(1)Closeable(1)ES6(1)optional(1)SessionLocaleResolver(1)@Validated(1)패턴(1)Spring log(1)헤더(1)ExceptionHandlerExceptionResolver(1)set(1)트랜잭션 템플릿(1)상한 경계 와일드 카드(1)와일드 카드(1)DTO(1)session(1)git(1)단점(1)DispatcherServlet(1)select related(1)Auth(1)에러 메시지(1)non-repeatable read(1)디자인패턴(1)Read Skew(1)dockerfile(1)연동(1)function(1)CheckedException(1)데이터 소스(1)method reference(1)MessageCodesResolver(1)Log4J2(1)AnnoationFormatterFactory(1)Serializable(1)
post-thumbnail

JDK 동적 프록시 예제를 프록시 체이닝으로 구현...?

김영한님의 스프링 핵심 원리 - 고급편 수업을 듣고 있던 중에 LogTraceBasicHandler에 필터링을 추가한다는 말을 듣고 이전 강의에서 말씀해주셨던 프록시 체이닝이 생각이 나서 "FilterHandler 이후에 LogTraceHandler 로 이어지는 프록시

2023년 3월 2일
·
0개의 댓글
·

격리성 수준과 발생하는 문제

예제의 편의를 위해 위와 같은 약어를 사용하겠다.오늘 하루동안 격리성 수준을 이해하기 위해 부단히도 애를 먹었다. 아직까지 전부 제대로된 이해를 하진 못했지만, 이 부분은 코드를 직접 작성하면서 경험을 하면서 익혀나가야 할 것 같다. 많이 부족해보일 수도 있겠지만, 이

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

트랜잭션과 ACID

트랜잭션이란, DB쿼리의 최소한의 단위를 이야기한다. 하나의 트랜잭션에 여러개의 쿼리문이 존재할 수 있으며, 모두 성공하면 모든 쿼리문이 성공적으로 영구히 적용되며, 중간에 어떠한 이유로든 실패하게 된다면 모든 쿼리문이 취소되어 트랜잭션이 시작되기 전으로 되돌아간다.

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

예외와 스프링 데이터 접근 예외

예외는 크게 Checked Exception, Unchecked Exception로 나뉜다.여기서 말하는 “체크”의 주체는 프로그래머가 아닌 컴파일러이다. Checked Exception은 컴파일러가 체크하고 만약 누락되었다면 컴파일이 되지 않는다. 반면에 Unchec

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

트랜잭션 템플릿과 트랜잭션 프록시

트랜잭션 매니저가 커넥션의 획득, 커밋 및 롤백, 커넥션의 반납을 추상화했다면, 트랜잭션 템플릿은 거기서 한발자국 더 나아가 비즈니스 로직을 제외한 트랜잭션의 시작과 끝을 숨겨놓은 객체를 의미한다.생성자를 통해 트랜잭션 매니저를 주입받는다.execute()action

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

트랜잭션 매니저

공식 Docs트랜잭션의 동작방식에 영향을 주는 네 가지 속성을 정의한다.트랜잭션 전파란, 트랜잭션 A안에서 트랜잭션 B가 호출되는 경우 진행되는 과정을 말한다.기본값부모 트랜잭션이 있다면 해당 트랜잭션에 합류한다.트랜잭션 B가 성공하더라도 트랜잭션 A가 실패하면 트랜잭

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

커넥션 풀, 데이터 소스

JDBC에서 기본적으로 지원하는 DriverManager는 각 연결마다 새로운 커넥션을 만든다. 그런데, 매 사용자의 요청마다 새로운 커넥션을 만들어서 데이터를 가공한다면 매우 불편할 것이다. 게다가 이 커넥션의 비용은 요청의 크기에 비례하지 않고 고정적으로 발생하며,

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

JDBC

Java Database ConnectivityJava언어에서 Database와 통신할 수 있도록 만들어진 Java 표준 API이다.인터페이스로 이루어져 있기 때문에 독립적으로 사용할 수는 없지만, 프로그래머는 JDBC를 이용해 코드를 작성하고 다양한 DBM

2023년 2월 25일
·
0개의 댓글
·
post-thumbnail

파일 업로드 - Multipart

Multipart란 클라이언트에서 서버로 파일을 보낼 때 사용하는 Content Type이다.클라이언트에서 보내는 요청을 찬찬히 뜯어보면 boundary=-----XXX 로 되어있는 것을 볼 수 있는데, 이는 각 Form 데이터의 경계를 나타내며, 이 경계를 기준으로

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

컨버터, 포맷터 - ConversionService

컨버터을 상속하여 구현하더라도 컨트롤러에서 new Converter로 선언하여 사용하면 메서드로 빼서 구현한 것과 차이가 없다. ConversionService는 컨버터의 구현체를 등록하고 사용하는 것을 분리하여 클래스간의 의존성을 낮출 수 있게 도와준다. Conver

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

컨버터, 포맷터 - Formatter

Converter는 보통 타입 변환을 제공하는데, 이것에 더해 어떤 숫자에 자릿수마다 , 를 붙이고 싶거나 날짜 정보를 원하는 방식으로 변환하고 싶을 때는 컨버터를 사용하기에는 부적절하다. 이를 해결하기 위해 사용하는 것이 바로 Formatter이다. 즉, 포맷터는 컨

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

컨버터, 포맷터 - Converter

기본적으로 클라이언트에서 오는 요청은 문자열의 형태로 전송된다. 이 때문에 코드를 작성할 때 먼저 문자열로 전송된 데이터를 원하는 형태에 맞게 변환을 진행해야 했다. 스프링은 이 과정을 추상화하여 제공하는데, 우리가 그동안 컨트롤러를 작성할 때 @ModelAttribu

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

스프링의 예외 처리 - API

디스페처 서블릿은 컨트롤러에서 발생한 예외를 처리하기 위한 ExceptionResolver를 제공한다.여기서 처리되지 않고 WAS까지 예외가 전달되면 뷰 템플릿을 찾기 위해 내부적으로 다시 컨트롤러까지 호출되는 일이 발생한다. 이는 컨트롤러는 물론, 필터와 인터셉터까지

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

스프링의 예외 처리 - 뷰 템플릿

요청 → WAS(톰캣) → 필터 → 서블릿 → 인터셉터 → 컨트롤러(예외 발생)컨트롤러 → 인터셉터 → 서블릿 → 필터 → WAS (예외 전달)WAS /error 재요청 → 필터 → 서블릿 → 인터셉터 → BasicErrorController → 인터셉터 → 뷰 리졸버

2023년 2월 22일
·
0개의 댓글
·
post-thumbnail

필터, 인터셉터 - Interceptor

HTTP 요청 → WAS(톰캣) → 필터 → 서블릿 (디스페처 서블릿) → 인터셉터 → 컨트롤러인터셉터는 필터와 마찬가지로 클라이언트의 요청을 컨트롤러 호출 전에 처리하여 컨트롤러마다 동일한 로직을 처리 할 수 있게 지원해주는 기능이다.필터는 서블릿에서 제공하는 기술인

2023년 2월 21일
·
0개의 댓글
·
post-thumbnail

필터, 인터셉터 - Filter

HTTP 요청 → WAS(톰캣) → 필터 → 서블릿 (디스페처 서블릿) → 컨트롤러필터란, 클라이언트의 요청을 중간에 낚아채서 로직을 처리하기 위해 제공되는 기능이다.필터는 여러 체인으로 구성되며, 프로그래머가 정한 순서에 맞게 해당 로직을 처리할 수 있도록 한다.do

2023년 2월 21일
·
0개의 댓글
·

쿠키, 세션 - Session

서버의 Session Storage를 만들어 Key-Value 형태로 저장되는 자료구조를 뜻한다.쿠키는 브라우저에 저장되므로 Value가 String Type으로 정해져 있는데 반해, 세션은 Object Type을 이용해 자바의 모든 객체를 담을 수 있도록 구현된다.이

2023년 2월 21일
·
0개의 댓글
·

쿠키, 세션 - Cookie

클라이언트의 Cookie Storage에 Key-Value 형태로 저장되는 자료구조를 뜻한다.서버에서 클라이언트에게 응답을 줄 때 Set-Cookie Header에 담아서 전달하게 되면, 브라우저는 Cookie Storage에 저장하게 된다.저장된 쿠키는 클라이언트가

2023년 2월 21일
·
0개의 댓글
·

검증 - 검증과 에러 메시지

Spring은 메시지, 국제화 기능을 제공하여 다음의 편의성을 제공했다.메시지 기능을 이용해 자주 등장하는 메시지를 하드 코딩 하지않고 별도의 파일로 분리하여 수정을 용이하게 했다.국제화 기능을 이용해 각 국가별로 다른 언어로된 메시지를 전달할 수 있도록 하였다.그런데

2023년 2월 19일
·
0개의 댓글
·

검증 - Bean Validation

JSR-380에 등재된 Bean Validation 2.0 이라는 표준 기술이다.즉, 검증을 위한 애노테이션과 여러 인터페이스를 어떻게 구현해야하는지 가이드가 기술되어 있다.Bean Validation을 구현한 구현체중 일반적으로 Hibernate Validator를

2023년 2월 19일
·
0개의 댓글
·