스프링 9

[spring] 프로젝트 생성

https://start.spring.io/ 스프링 프로젝트를 쉽고 빠르게 만들 수 있다. 설정 project: 프로젝트 관리 툴 group: 그룹이름 artifact: jar 파일 이름, 프로젝트 이름(빌드의 결과물) 프로젝트 열기 IDE에서 파일이 있는 경로로 들어가 build.gradle을 연다. 연결확인하기 프로젝트를 실행하고, 연결된 포트번호를 확인한다. localhost:8080 혹은 http://127.0.0.1:8080/에 연결한다. 아직 아무것도 하지 않았기 때문에 위와 같은 화면이 뜬다. 잘 연결된 것이다.

스프링 2022.06.14

[spring]스프링 DB 기술

H2 Database 자바 기반 오픈소스 관계형 데이터베이스 관리시스템(RDBMS) 용량이 작고 가볍다. 웹으로 화면 제공. 내가 설치한 경로 : C:\Program Files (x86)\H2 C:\Program Files (x86)\H2\bin에서 h2.bat으로 실행 [사용자]-[사용자이름] 폴더에 test.mv.db 파일이 생성됨 JDBD URL을 jdbc:h2:tcp://localhost/~/test 로 연결해서 사용(소켓으로 연결) 순수 Jdbc JDBC : 자바에서 DB에 접속할 수 있도록 하는 자바 API 환경설정 build.gradle 파일에 jdbc, h2 데이터베이스 관련 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-st..

스프링 2022.04.11

[spring]스프링 빈

컨트롤러가 서비스와 리포지토리를 사용할 수 있게 의존관계 준비. 컴포넌트 스캔, 자동 의존관계 설정 @Autowired 스프링이 연관된 객체를 스프링 컨테이너에서 찾아 넣어줌 더보기 DI(의존성 주입) 객체 의존관계를 외부에서 넣어주는 것 @Service @Autowired @Repository Controller->Service->Repository 스프링 빈을 등록할 때 싱글톤으로 등록=같은 스프링 빈이면 모두 같은 인스턴스 자바 코드로 직접 빈 등록 SpringConfig 파일 생성 @Configuration public class SpringConfig { @Bean public MemberService memberService() { return new MemberService(memberRep..

스프링 2022.03.02

[spring]테스트 케이스 작성

테스트는 순서에 의존적이면 안됨. 하나의 테스트가 끝날 때마다 저장소나 공용 데이터를 지워줘야 한다. @AfterEach 사용 // given 어떤것이 주어졌을 때 // when 언제 // then 어떤 결과가 - 테스트를 먼저 만들고 구현 클래스를 만드는 방식=> 테스트주도개발(TDD) reference www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

스프링 2022.02.28

[spring]간단한 회원 관리

데이터 : 회원id, 이름 기능: 회원 등록, 조회 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 도메인을 이용해 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 MemberRepository: (interface) 데이터 저장소가 선정되지 않아 인터페이스로 구현 클래스를 변경할 수 있도록 설계 더보기 인터페이스 사용하는 이유 - 협업에서 틀을 맞추기 좋음 - 재활용 가능 - 교체 용이 - 상속 reference www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%8..

스프링 2022.02.28

[spring]웹 개발 기초

정적 컨텐츠 파일을 그대로 웹브라우저에 전달. 스프링이 관련 컨트롤러가 없음을 확인하고 정적 콘텐츠를 찾아 그대로 반환한다. MVC @Controller public class HelloController { @GetMapping("hello") public String hello(Model model) { model.addAttribute("data", "hello!!"); return "hello"; } @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model){ model.addAttribute("name",name); return "hello-template"; } } API @GetM..

스프링 2022.02.28

[spring]MVC

MVC 컨트롤러를 조작하면 컨트롤러는 모델을 통해 데이터를 가져오고 이를 바탕으로 뷰에서 사용자에게 보여줌 Model : 모델(model)이란 어떠한 동작을 수행하는 코드를 말한다.(데이터) View : 뷰는 보여줄 값(모델)을 컨트롤러로부터 받아와 사용자에게 보여준다.(렌더링) Controller : 뷰와 모델 사이의 인터페이스. 뷰는 여러 개의 컨트롤러를 가지고 있다. 사용자는 컨트롤러를 사용하여 모델의 상태를 바꾼다. View resources/static/index.html : 스프링 부트가 welcome page 제공 정적 콘텐츠 위치에서 파일을 먼저 찾고 없으면 템플릿을 찾는다. 동작 url을 넘겨줬을 때 스프링 부트에 내장된 톰캣이 확인하고 스프링의 controller가 GetMapping을..

스프링 2022.02.27

[spring]스프링 시작

순서 스프링 부트 웹 서버 실행하기 회원 도메인 웹 MVC DB 테스트 케이스 프로젝트 생성 java 11 IntelliJ 스프링 부트를 이용해 프로젝트를 생성한다 Project Gradel Project Language Java Spring Boot 2.6.4 (최신버전 사용) Project Metadata Group: 기업명 Artifact: 빌드될 때 결과물. 프로젝트명 Dependencies Spring Web=웹프로젝트 Thymeleaf=html을 만들어주는 템플릿 엔진 build.gradle 파일을 인텔리제이에서 열어준다. 파일 구성 >src >main : >java : 실제 패키지와 소스가 들어있음 >resources : 자바파일을 제외한 xml, html 등의 파일 >test : 테스트 관..

스프링 2022.02.26