일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HTTP
- Operating System.
- redis
- 운영체제
- 김영한
- n타일링2
- 스프링 핵심 원리
- 스프링 입문
- Four Squares
- TCP/IP
- 우아한 테크 세미나
- 2475번
- 토마토
- BOJ
- 우아한레디스
- 제프리리처
- inflearn
- FIFO paging
- Operating System
- 열혈 TCP/IP 소켓 프로그래밍
- 윤성우 저자
- 열혈 tcp/ip 프로그래밍
- 에러핸들링
- Spring
- C++
- 10026번
- 이펙티브코틀린
- OS
- C#
- Window-Via-c/c++
- Today
- Total
목록Spring (31)
나의 브을로오그으

start.spring.io에 들어가서 project : gradle project spring boot : 2.7.1(안정적인 릴리즈 버전 아무거나) group : hello artifact : core java : 11 설정이 끝나면 generate 이후, core.zip 압축 파일을 풀고, intellij로 해당 build.gradle을 프로젝트로 열어주면 된다. 실행하여 다음과 같이 나오면 끝이다.

스프링이란? 스프링은 여러 기술들의 모음이라고 볼 수 있다. 가장 핵심은 스프링 프레임워크와 여러 스프링 기술들을 편하게 사용 할 수 있도록 도와주는 스프링 부트 그외 스프링 데이터, 스프링 세션, 스프링 시큐리티, 스프링 Rest Docs, 스프링 배치, 스프링 클라우드 등이 있다. 스프링 데이터 : RDBS, NoSQL 등 CRUD는 유사하기 때문에 이것을 편리하게 사용 할 수 있도록 도와주는 기술 (스프링 데이터 JPA를 가장 많이 씀) 스프링 세션 : 세션 기능을 편리하게 사용 할 수 있도록 도와주는 기능 스프링 시큐리티 : 보안과 관련된 기술 스프링 Rest Docs : API 문서와 Test를 엮어서 API 문서를 편리하게 작성 할 수 있도록 도와주는 기술 스프링 배치 : 데이터를 일정한 양만..

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에서 인자로 넘겨주는 것..

https://start.spring.io/ 해당 사이트에 들어가서 Spring 프로젝트를 쉽게 만들 수 있다. 강의에서는 Project : Gradle Project Language : Java Spring Boot : 2.7.1(Release 버전은 계속 바뀜) Dependencies : Thymleaf(Template Engines), Spring Web(Web) 설정 후 Generate 하면 끝! 이후 IntelliJ로 해당 프로젝트를 open 하면 이렇게 나온다. 주로 보아야 할 디렉터리는 src이다. 하위 디렉터리로 크게 main과 test로 나뉘는데 현재 개발 트렌드에서는 test코드를 작성하는 것이 굉장히 중요하기에 거의 대부분 웹 애플리케이션 프로젝트를 생성하게 되면 이렇게 main과 t..