spring initializer로 프로젝트 생성 spring initializr스프링 기반 프로젝트를 만들어줌 maven, gradle : 필요한 라이브러리를 가져오고 빌드해주는 툴 과거에는 maven을 많이 사용, 최근은 gradle을 많이 사용 springboot
resource/static/index.html 을 만들면 처음에 들어갔을 때 웰컴페이지 역할을 해준다스프링부트 doc(https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-bo
인텔리제이에서 서버를 돌리는 것 말고 jar 파일을 만들어서 빌드하고 실행할 수 있다 cmd창에서 프로젝트 폴더로 이동 후 ./gradlew -> gradlew 명렁어 입력 프로젝트가 빌드되어서 jar 파일이 생성됨 jar 파일은 프로젝트폴더/build/libs 디렉토
웹 개발의 3가지 방법 정적 컨텐츠 : 서버에서 하는 것 없이 파일을 그대로 웹브라우저에 내려줌 MVC와 템플릿 엔진 : HTML을 서버에서 프로그래밍 해서 동적으로 바꿔서 내려주는 것 - 정적 컨텐츠와 달리 서버에서 HTML을 변형해서 내려줌 API : JSON 데
java의 main 메소드나 웹의 컨트롤러로 실행해서 테스트 하면 준비, 실행이 오래 걸리고 반복 실행이 어려움, 여러 테스트를 한번에 실행하기 어려움 자바는 JUnit 프레임워크로 테스트를 실행해서 이러한 문제 해결 테스트 디렉토리 아래에 똑같이 패키지랑 클래스를 만
회원 서비스 : 리포지토리랑 도메인을 활용해 실제 비즈니스 로직을 작성함 validateDuplicateMember 메소드는 원래 join 안에서 이름 중복을 검사하려고 만든 코드를 드래그 -> 우클릭 -> refactor -> extract method로 메소드를 추
스프링 빈 이란? @Controller 어노테이션이 달리면 스프링이 스프링 컨테이너에 컨트롤러 객체를 만들어 관리함 이것을 스프링 빈을 관리한다고 함 스프링이 인식하기 위해 @Controller @Service @Repository 와 같은 어노테이션을 달아 주는 것
@PostMapping : url을 form에 담아서 보낼 때 html의 input 태그의 name값에 따라 컨트롤러 메소드의 파라미터의 객체 필드에 값이 들어옴 (스프링이 setter를 통해서)html의 input 태그의 name="name"이므로 post 방식으로
h2 database 설치 후 bin 폴더 들어가서 \\h2.bat 명령어 입력 자세한 설정은 pdf 파일 참고ddl을 디렉토리를 하나 만들어서 따로 관리하는게 좋다고 함옛~날에 사용하던 방법데이터베이스 관련 라이브러리 항목을 추가해준다jdbc : 자바는 db랑 연동하
DB랑 이제 연결을 했고, DB 커넥션 정보 같은 것들을 스프링이 들고 있음따라서 DB까지 같이 동작하는 테스트 해야함기존에 진행했던 테스트는 순수한 자바 코드로 진행한 테스트임 (단위 테스트)@SpringBootTest 어노테이션을 달아서 스프링부트랑 연동해서 테스트
스프링 JdbcTemplate환경설정 : 순수 jdbc에서 한 것과 같음 순수 jdbc에서 반복 코드를 많이 제거해줌 SQL은 직접 작성해야함JdbcTemplate은 주입 못받음DataSource를 주입받아서 JdbcTemplate 생성할 때 인자로 던짐참고 : 생성자
JPA 기술을 사용하면 SQL 쿼리도 JPA가 자동으로 생성해줌 SQL,데이터 중심 설계 -> 객체 중심 설계개발 생산성을 크게 높일 수 있음 jpa는 자바의 표준 인터페이스중 하나이고 여러 업체에서 구현함. 우리는 주로 hibernate를 쓰게 됨 ORM : obje
스프링부트랑 jpa만 사용해도 개발 생산성이 많이 증가함스프링 데이터 jpa를 사용하면 리포지토리에 구현 클래스 없이 인터페이스만으로 개발 완료 가능CRUD 기능도 스프링 데이터 JPA가 모두 제공함 JPA를 먼저 학습하고 SPRING DATA JPA를 공부해야함 SP
공통 관심 사항과 핵심 관심 사항 코드가 섞이면 유지보수가 어렵고 불편함aspect oriented programming 공통 관심 사항 - 핵심 관심 사항 분리 aop 패키지 만들고 작성함@Aspect : aop 에 달아줘야함 @Component : 컴포넌트 스캔으로