목록Java/Spring (33)
재 현
일반적으로, 데이터베이스 테이블에서 ID 값은 고유한 값으로, 새로운 레코드를 추가할 때마다 자동으로 1씩 증가하는 경우가 많다. 이것은 보통 데이터베이스 시스템의 "auto_increment" 또는 유사한 기능을 통해 구현된다. 이런 동작 방식은 실제 운영 환경에서는 문제가 없지만, 데이터베이스 테스트 환경에서는 예기치 않은 결과를 초래할 수 있다. 뭐가 문제였을까? 예를 들어, 나는 Repository Test를 위해 여러 개의 Test code를 작성했다. 그리고 Test들을 실행시켰더니 에러가 발생했다. 문제가 되는 부분을 보니, Member 객체를 저장한 후 member의 id로 찾으려니 null이 떴다. 저장했던 member의 id를 출력해보니 내가 설정한 1이 아니었다. 테스트를 실행할 때마..
공유를 목적으로 하는 것 아닌 개인 단순 정리 글입니다. was(web application server) 웹서버(정적리소스[html,css,js,이미지])+ 동적(애플리케이션 로직) webserver -> was -> db servlet 비즈니스 로직을 제외한거 다 알아서 해줌 싱글톤, 서블릿컨테이너(객체생성초기화종료까지관리) 동시 요청 - 멀티 쓰레드 쓰레드 생성 비용 너무 비싸, 컨텍스트 스위치 비용 쓰레드풀이 쓰레드 관리(미리생성) -> was가 알아서 해줌 http: html 주기 http api: data(json)주기, ui클라이언트(프론트), 서버to서버 html다하기 -> 서블릿(비즈니스 로직 제외한거 다해줌) -> 비즈니스 로직 혼자 너무 많음 -> mvc -> 춘추전국시대mvc -> ..
공유를 목적으로 하는 것 아닌 개인 단순 정리 글입니다. 1. 환경설정 - Spring Boot ver 3.x.x -> java 17 설치 -> jdk와 sdk를 java 17로 설정 2. 왜 스프링인가? 수많은 프레임워크 중에 왜 스프링? 우리는 객체지향을 알 필요가 있다. 객체 지향 중 다형성의 원리를 지키고자 한다. 하지만 순수 자바로는 DIP, OCP를 지키면서 개발하기 쉽지 않다. 스프링이 그걸 쉽게 해준다. DI Container와 의존성 자동 주입을 해준다. 3. ApplicationContext 스프링 컨테이너이다. Bean으로 등록한 뒤 스프링은 이를 싱글톤으로 유지시켜준다. Bean은 중복되어선 안된다. @Configuration이란 annotation을 붙인 class에 Bean을 등..