일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 10026번
- 김영한
- Operating System
- 2475번
- 윤성우 저자
- 열혈 tcp/ip 프로그래밍
- inflearn
- HTTP
- n타일링2
- 토마토
- FIFO paging
- 에러핸들링
- redis
- Window-Via-c/c++
- 우아한레디스
- Operating System.
- TCP/IP
- C++
- BOJ
- 제프리리처
- Four Squares
- 스프링 입문
- 이펙티브코틀린
- Spring
- 운영체제
- C#
- 우아한 테크 세미나
- 열혈 TCP/IP 소켓 프로그래밍
- 스프링 핵심 원리
- OS
- Today
- Total
목록스프링 입문 (7)
나의 브을로오그으

AOP가 필요한 상황 - 모든 메소드의 호출 시간을 측정하고 싶다면? - 공통 관심 사항(cross-cutting concern) vs 핵심 관심 사항(core concern) - 회원 가입 시간, 회원 조회 시간을 측정하고 싶다면? [MemberService] /** * 회원가입 */ public Long join(Member member) { long begin = System.currentTimeMillis(); try { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); } finally { long end = System.currentTimeMillis(); long t..

[스프링 데이터 엑세스] - H2 데이터베이스 설치 - 순수 Jdbc - 스프링 JdbcTemplate - JPA - 스프링 데이터 JPA H2 데이터베이스 설치 - 개발이나 테스트용도로 가볍고 편리한 DB, 웹 화면 제공 1. 윈도우의 경우 h2 설치 2. 윈도우 키를 누르고 h2를 검색해서 h2콘솔 앱을 실행 3. db 파일 생성 및 연결 4. 테이블 생성 drop table if exists member CASCADE; create table member ( id bigint generated by default as identity, name varchar(255), primary key(id) ); 테이블 생성 시 값 설정 id는 java에서는 Long, db에서는 bigint 타입 genera..

[홈 화면 추가] [HomeController] [templates/home.html] [회원 웹 기능 등록] [templates/members/createMembersForm.html] [localhost:8080/members/new] [templates/members/createMemberForm.html] [MemberForm] [HomeController] 1. localhost:8080/members/new에 매핑된 createFrom() 메소드 호출 2. 템플릿 엔진이 members/createMemberForm.html로 변환 3. 박스에 이름을 입력하고 등록 버튼 클릭 4. createMemberForm.html의 form에 추가된 속성 action("/members/new"), meth..

스프링 빈은 한마디로 쉽게 말하면 스프링이 가지고 있는(등록되어 있는) 객체 이다. [스프링 빈과 의존관계] 스프링 애플리케이션 실행 시 @Controller 에노테이션이 붙은 클래스 객체를 생성해서 스프링 컨테이너가 가지고 있다. 이를 스프링 빈과 의존관계를 형성했다고 표현한다. @Controller, @Service, @Repository 애노테이션을 각 클래스 위에 붙여주자. (정형화된 형식임) 이렇게 붙여주면, 스프링 컨테이너가 해당 객체를 생성 할 때 공통으로 사용하는 객체들(Service, Repository)일 경우 1회 생성하여 공유해서 사용한다. 컨트롤러와 서비스가 연결되어 있다. 연결 시 @AutoWired를 컨트롤 생성자에 붙이면, 인자로 받은 memberService객체는 스프링 컨..

[비즈니스 요구 사항 정리] - 데이터: 회원ID, 이름 - 기능: 회원 등록, 조회 - 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) [일반적인 웹 애플리케이션 계층 구조] [클래스 의존 관계] (데이터 저장소를 정한것이 아니기 때문에 메모리 기반(정적 필드 형태)의 데이터 저장소 사용) [회원 도메인과 리포지토리 만들기] 1. hellospring 패키지 밑에 domain 패키지를 추가하고 Member 클래스를 생성 [Member] 2. hellospring 패키지 밑에 repository 패키지를 추가하고 MemberRepsository 인터페이스와 MemberRepository 구현체인 MemoryMemberRepository 클래스를 생성 [MemberRepository] [MemoryM..

[웹 개발 방법] 1. 정적 컨텐츠 (그냥 서버에서 추가적인 작업 없이 파일을 그대로 웹 브라우저한테 넘겨주는 것) 2. MVC와 템플릿 엔진 (JSP, KSP 와 같은 템플릿 엔진을 통해 서버에서 html 파일을 동적으로 바꿔서 웹 브라우저한테 넘겨주는 것) 3. API (특정 포맷으로 클라이언트에게 데이터 전달, 그러면 클라이언트에서 해당 데이터에 맞게 처리해서 웹브라우저에서 실행 | 대부분 데이터 포맷은 JSON 포맷으로 전달함.) [정적컨텐츠] hello-static.html 1. SpringApplication 실행 2. 웹 브라우저 주소창에 localhost:8080/hello-static.html - 동작원리 1. 웹브라우저에서 localhost:8080 주소에 hello-static.htm..

[resources/templates/hello.html] [hellospring/controller/HelloController] [실행] 스프링 애플리케이션 실행 -> 웹브라우저 주소창에 입력 : localhost:8080/hello [동작원리] 1. localhost:8080에서 /hello라고 웹브라우저에서 서버로 전달 2. 스프링 부트에는 톰켓이라는 서버를 내장하고 있다. 따라서 서버에서 이걸 받아서 /hello가 있는지 스프링 컨테이너의 Controller에 @GetMapping("hello") = HTTP GET Request임. 이 문자열(url)에 매핑이 되어 있어서 hello()메소드가 실행된다. 3. 이때 model이라는 파라미터는 Spring Container에서 인자로 넘겨주는 것..