2023/11 9

스프링 입문 - DB접근 기술

generated by default as identity : 값을 세팅하지 않고 insert하면 db가 자동으로 id값을 채워줌 순수 JDBC 자바는 DB로 연결하기 위해 JDBC드라이버가 필요하다 build.gradle에 라이브러리 추가 implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' import 필요 -> build.gradle에서 아래의아이콘 누르면 import됨 db 접근 준비 완료 스프링을 통해 dataSource를 주입 받아야 함 통합 테스트 Spring Framework 에서 DB Connection을 사용할 때는 DataSourceUtils를 통해 connect..

스프링 입문 - 회원관리 예제로 웹MVC개발 (조회)

memberService.findMembers( ) : 멤버를 다 꺼내올 수 있음 member리스트를 모델에 담아 화면에 넘김 template에 memberList를 만들어 주어야함 ${members} : 모델안에 있는 값(객체)을 꺼냄 -> member에 담아 id와 name을 출력해줌 th:each 이 과정을 반복 서버를 껐다 켜면 데이터가 지워짐 (메모리에 담겨 있기 때문에 자바를 끄면 사라짐) -> DB나 파일에 저장필요

스프링 입문 - 회원관리 예제로 웹MVC개발 (등록)

도메인 첫번째 localhost8080 들어오면 호출됨 home.html이 호출 됨 첫번째 도메인 localhost8080요청이 오면 controller의 "/"를 찾아보고 Mapping된게 있으면 호출하고 끝남 기존에 만들었던 index.html은 무시됨 name과 name이 mapping된다 [과정] 브라우저에서 members/new 요청(Get방식) Controller의 members/new를 찾아주고 createForm()이 호출. createMemberForm으로 이동 리턴하면 viewResolver를 통해 createMemberForm.html이 선택되고 타임리프 템플릿이 렌더링함. get : url에 엔터쳐서 요청하는 방식 (조회할 때) post방식: 데이터를 form에 넣어서 전달하는 방식..

스프링 입문 - 빈과 의존관계

컴포넌트 스캔과 자동 의존관계 설정 컴포넌트 스캔 대상 : 메인 메서드가 있는 패키지를 포함해서 하위패키지까지 찾아서 스프링 빈으로 등록해 줌. @Controller 스프링 컨테이너 통이 생기는데 , @Controller 가 있으면 MemberController객체를 생성해서 스프링에 넣어 두고 관리. 컨테이너에서 빈이 관리된다고 표현 생성자가 있으면 생성자를 호출 new MemberService()를 만들어서 사용하게 되면 생기는 문제점: 또 다른 컨트롤러에서도 가져다 쓸 수 있다 MemberSevice()는 여러 개 만들 필요 없이, 하나만 만들어 공용으로 사용하면 좋다 →컨테이너에 등록하면 하나만 등록 됨 스프링이 관리하게 되면 스프링 컨테이너에 등록하고 받아 써야 함 @Autowired 생성자에 ..

스프링 입문 - 회원관리 예제 (백엔드 개발)

Service : 비즈니스 처리 / 비즈니스에 가까운 용어 사용 필요 Repository : 기계적, 개발스럽게 용어 선택 service를 통해 member가입할 수 있고 repository에 저장되고 꺼내올 수 있음 controller와 view template필요 회원가입하고 결과를 html로 뿌려주고 그러려면 member controller를 만들어야됨 member service를 통해 회원가입, 데이터 조회할 수 있어야 한다. 이것을 의존관계가 있다고 표현. controller가 service를 의존한다 클래스 전체 테스트 하다가 오류 발생 @AfterEach : 메서드 실행이 끝날때마다 동작 Test실행 할 때, 순서 없이 진행 되는데 여러 메서드 안에 같은 value값을 넣은 경우 오류 생기는..

스프링 입문 - 스프링 웹 개발 기초

1. 정적 컨텐츠 서버에서 파일을 그대로 웹브라우저에 내려 주는 것 2. MVC와 템플릿 엔진 템플릿 엔진 : HTML을 서버에서 프로그래밍해서 동적으로 바꿔서 내려 줌 (ex: Jsp, php) MVC : 컨트롤러, 모델, 템플릿 엔진(화면) 3. API Json 데이터 구조 포맷으로 데이터 전달 사용 예시 ) 서버 끼리 통신할 때 정적 컨텐츠 MVC와 템플릿 엔진 MVC : Model, View, Controller View - 화면을 그리는 것에 집중 Controller , Model - 비즈니스 로직과 내부적인 것을 처리하는데 집중 파일 마우스 우클릭 -> Copy Path/ Reference.. -> Absolute Path 타임 리프의 장점 : 서버 없이 열어 볼 수 있다 [과정] 브라우저에서..

스프링 입문 - 프로젝트 생성 / 라이브러리/ 환경설정

Maven or Gradle => 필요한 라이브러리를 땡겨오고, 관리하는 툴 요즘하는 gradle을 거의 사용 Group : 기업 도메인명 Artifact : 결과물 (프로젝트명) Dependencies : 어떤 라이브러리를 땡겨 쓸 것인지 지정 gradle : 버전 설정하고 라이브러리 끌어와주는 기능 main을 실행 -> 웹브라우저에 localhost : 8080 입력해서 아래의 페이지 나오면 성공 gradle이나 maven같은 tool들은 의존 관리를 관리 해줌 스프링 부트 라이브러리 spring-boot-starter-web - spring-boot-starter-tomcat: 톰캣 (웹서버) - spring-webmvc: 스프링 웹 MVC spring-boot-starter-thymeleaf: 타..