no image
[Spring] The import org.springframework cannot be resolved
github 리포지토리 엉망진창 돼서 압축파일로 가져와서 내 노트북에 풀었음 근데 오류남.. 하지만 해결방법을 찾음!! 프로젝트 오른쪽클릭 -> Maven -> Update Project... -> OK 파일 하나 해보고 에러 해결되면 select all 해서 모든 파일 update maven project 해주면 됨!!
2022.07.03
[Spring/입문/강좌] JPA 및 스프링 데이터 JPA - 스프링 DB 접근 기술
보호되어 있는 글입니다.
2022.02.03
no image
[Spring/입문/강좌] H2 데이터베이스 설치 및 순수 JDBC - 스프링 DB 접근 기술
1. H2 다운로드 및 실행 밑에 링크에서 다운로드 후 zip 해제 H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp www.h2database.com h2.bat 실행문을 통해 H2 실행 (url : jdbc:h2:~/test => jdbc:h2:tcp://localhost/~/..
2022.01.27
no image
[Spring/입문/강좌] 회원 등록 폼 개발 - 회원 관리 예제(웹 MVC 개발)
1. Home.html (현재 오류) controller에서 home.html로 잘 넘어감 build도 하고 localhost:8080 쳤는데 사이트에 연결할 수 없다고 뜸 스트링빈 등록 과정에서 컴포넌트 스캔과 자바 코드가 섞여 발생한 오류 and 타이핑 실수 자바 코드 등록 시 회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 애노테이션을 제거하고 진행한다 2. createMemberForm.html MemberController.java에 @GetMapping으로 createMemberForm을 설정한다. createMemberForm.html을 templates에 만들어 html 화면을 만들어준다. MemberController.java 파일에 creat..
2022.01.26
no image
[Spring/입문/강좌] 컴포넌트 스캔과 자동 의존관계 설정 및 자바 코드로 스프링 빈 등록 - 스프링 빈과 의존관계
1. 스프링에 연결하기 ( MemberController.java ) 컨트롤러가 있으면 스프링에 뜰 때 생성을 해서 관리함 @Autowired 로 멤버 서비스를 연결시킴 그러나 MemberService.class는 순수한 자바 클래스이므로 오류가 남 MemberService.java 파일 상단에 @Service 추가 MemoryMemberRepsitory.java 파일 상단에 @Repository 추가 2. 자바 코드로 스프링 빈 등록 (현재 오류) MemberService 클래스 위 @Service를 빼서 오류가 생김 SpringConfig.java 파일에서 return이 안먹힌다. error : Method annotated with @Bean is called directly. Use depende..
2022.01.25
no image
[Spring/입문/강좌] 회원 서비스 개발 및 테스트 - 회원 관리 예제
회원 서비스를 개발해보고 테스트 해보기! 1. 회원 서비스 개발 ( MemverService.java ) MemberService에 들어갈 함수 1. 중복 회원 방지 함수 -> join 2. 전체 회원 조회 함수 -> findMembers 3. 아이디 리턴 함수 -> findOne 2. 회원 서비스 테스트( MemverServiceTest.java ) 단축키 ctrl + alt + v 변수 추출하기 shift + f10 이전 프로그램 빌드하기 ctrl + alt + shift + T 일반 함수로 꺼내기 강좌 사이트 [무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 ..
2022.01.24
no image
[Spring/입문/강좌] 회원 도메인과 리포지토리 만들기 및 리포지토리 테스트 케이스 작성 - 회원 관리 예제
비즈니스 요구사항을 정리하고, 회원 도메인과 리포지토리 만들어보기! 1. 비즈니스 요구사항 정리 데이터 : 회원ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) *DB 설정 안된 상황 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 // 중복가입 방지 로직 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 // 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직이 동작하도록 함 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리 회원 비즈니스 로직에는 회원서비스가 있음 회원 리포지토리는 인터페이스로 설계 - 아직 데이터 저장소가 선정되지 않아서 메모리 기반의 데이터 저장소 사용..
2022.01.21
no image
[Spring/입문/강좌] 스프링 웹 개발 기초
정적 컨텐츠, MVC와 템플릿 엔진, API 웹개발 방법 3가지 알아보기! 1. 정적 컨텐츠 -> 서버에서 하는거 없이 파일에서 그대로 내려주는 것 2. MVC(model view controller)와 템플릿 엔진 -> html을 동적으로 바꿔서 내리는 것(ex: controller) (요즘 많이 사용하는 방식이라고 함) + view를 템플릿 엔진으로 렌더링 된 html을 클라이언트에게 전달한다. tymeleaf의 장점은 html을 그대로 사용하고 서버 없이 열어도 큰 틀을 볼 수 있다. 3. API -> json 데이터 포맷으로 클라이언트에게 내려주는 것 api는 객체를 반환한다. HTTPMessageConverter를 통해서 json으로 반환해준다. view 없이 바로 반환한다. 2번과 차이점은 h..
2022.01.20

github 리포지토리 엉망진창 돼서 압축파일로 가져와서 내 노트북에 풀었음

근데 오류남.. 

 

하지만 해결방법을 찾음!!

프로젝트 오른쪽클릭 -> Maven -> Update Project... -> OK 

 

 

파일 하나 해보고 에러 해결되면 select all 해서 모든 파일 update maven project 해주면 됨!!

 

에러안뜸

 

[Spring/입문/강좌] JPA 및 스프링 데이터 JPA - 스프링 DB 접근 기술

2022. 2. 3. 23:44

This is a protected article. Please enter the password.

1.  H2 다운로드 및 실행

밑에 링크에서 다운로드 후 zip 해제

 

H2 Database Engine

H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size     Supp

www.h2database.com

 

h2.bat 실행문을 통해 H2 실행

 

접속 완료!

(url : jdbc:h2:~/test => jdbc:h2:tcp://localhost/~/test) 

test.mv.db 생성 여부 확인 후 진행

(cmd 창을 새로 열고 dir을 치면 찾을 수 있다)

 

member db 만들기

create table member
(
 id bigint generated by default as identity,
 name varchar(255),
 primary key (id)
);

 

sql을 따로 관리하는 파일 만들기

 

2.  순수 JDBC

2-1 build.gradle

implementation 'org.springframework.boot:spring-boot-starter-jdbc'
runtimeOnly 'com.h2database:h2'

dependencies에 jdbc implements 해주기

 

2-2 JdbcMemberRepository.java 

 

MemberRepository implements 하기

 

2-3 SpringConfig.java 

 private DataSource dataSource;

    @Autowired
    public SpringConfig(DataSource dataSource){
        this.dataSource = dataSource;
    }
@Bean
public MemberRepository memberRepository(){
    //return new MemoryMemberRepository();
    return new JdbcMemberRepository(dataSource);
}

DataSource 추가 후

return 문 바꾸고 실행하면 완료!!

 

 

결과 페이지

ID가 같은 번호 두 번 입력되어 저장됨!!


강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

1.  Home.html (현재 오류)

 

 

controller에서 home.html로 잘 넘어감

build도 하고 localhost:8080 쳤는데 사이트에 연결할 수 없다고 뜸

 

스트링빈 등록 과정에서 컴포넌트 스캔과 자바 코드가 섞여 발생한 오류

and 타이핑 실수

 

자바 코드 등록 시

회원 서비스와 회원 리포지토리의

@Service, @Repository, @Autowired 애노테이션을 제거하고 진행한다

 

결과

 

 

2.  createMemberForm.html 

MemberController.java에 @GetMapping으로 createMemberForm을 설정한다.

createMemberForm.html을 templates에 만들어 html 화면을 만들어준다.

회원 가입 버튼 클릭 시 이동 화면
등록 버튼 누를 시 나오는 화면

MemberController.java 파일에 create 함수의 return 형이

redirect:/이므로 초기 화면으로 돌아간다.

3.  memberList.html 

MemberController.java에 @GetMapping으로 memberList를 설정한다.

memberList.html을 templates에 만들어 html 화면을 만들어준다.

 

회원 가입 화면에서 등록하면

회원 목록 화면에서

등록된 회원의 목록을 확인할 수 있다.


 

 

강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

1.  스프링에 연결하기 ( MemberController.java ) 

 

컨트롤러가 있으면 스프링에 뜰 때 생성을 해서 관리함

 

@Autowired 로 멤버 서비스를 연결시킴

그러나 MemberService.class는 순수한 자바 클래스이므로 오류가 남

 

MemberService.java 파일 상단에 @Service 추가

MemoryMemberRepsitory.java 파일 상단에 @Repository 추가

 

2.  자바 코드로 스프링 빈 등록 (현재 오류)

 

MemberService 클래스 위 @Service를 빼서 오류가 생김

 

SpringConfig.java 파일에서 return이 안먹힌다.

error : Method annotated with @Bean is called directly. Use dependency injection instead.

 

상단에 @Configuration를 작성하지 않아 오류가 생김

@Configuration

 

 

DI에는 필드 주입, 생성자 주입, setter 주입이 있다. (대부분 생성자 주입을 사용)

 

필드 주입

@Autowired private MemberService memberService



생성자 주입

@Autowired
public MemberController(MemberService memberService) { 
    this.memberService = memberService;
}


setter 주입

@Autowired
public void setMemberService(MemberService memberService){
    this.memberService = memberService;
}

 

 

강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

 

회원 서비스를 개발해보고 테스트 해보기!

 

 

1.  회원 서비스 개발 ( MemverService.java ) 

 

MemberService에 들어갈 함수

1. 중복 회원 방지 함수 -> join

2. 전체 회원 조회 함수 -> findMembers

3. 아이디 리턴 함수 -> findOne

 

 

 

2. 회원 서비스 테스트( MemverServiceTest.java ) 

 

 

 

단축키

ctrl + alt + v 변수 추출하기

shift + f10 이전 프로그램 빌드하기

ctrl + alt + shift + T 일반 함수로 꺼내기


 

 

강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

 

비즈니스 요구사항을 정리하고,

회원 도메인과 리포지토리 만들어보기!

 

 

1. 비즈니스 요구사항 정리

 

  • 데이터 : 회원ID, 이름
  • 기능 : 회원 등록, 조회
  • 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) *DB 설정 안된 상황

 

  • 컨트롤러 : 웹 MVC의 컨트롤러 역할 
  • 서비스 : 핵심 비즈니스 로직 구현 // 중복가입 방지 로직
  • 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 // 비즈니스 도메인 객체를 가지고 핵심 비즈니스 로직이 동작하도록 함
  • 도메인 : 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 DB에 저장하고 관리

 

  • 회원 비즈니스 로직에는 회원서비스가 있음
  • 회원 리포지토리는 인터페이스로 설계 - 아직 데이터 저장소가 선정되지 않아서 
  • 메모리 기반의 데이터 저장소 사용

 

2. 회원 도메인과 리포지토리 만들기

 

 

  • main에 리포지토리와 메모리구현체 생성

 

3.  회원 리포지토리 테스트 케이스

 

  • test에 repository 패키지 만든 후 test케이스 생성

 

 

강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com

 

 

 

정적 컨텐츠, MVC와 템플릿 엔진, API

웹개발 방법 3가지 알아보기!

 

 

1. 정적 컨텐츠

-> 서버에서 하는거 없이 파일에서 그대로 내려주는 것

동작 원리

 

 

2. MVC(model view controller)와 템플릿 엔진

-> html을 동적으로 바꿔서 내리는 것(ex: controller)

(요즘 많이 사용하는 방식이라고 함)

+ view를 템플릿 엔진으로 렌더링 된 html을 클라이언트에게 전달한다.

 

tymeleaf의 장점은 html을 그대로 사용하고 서버 없이 열어도 큰 틀을 볼 수 있다.

 

 

get 방식이므로 name 값을 url에 타이핑함

 

 

3.  API 

-> json 데이터 포맷으로 클라이언트에게 내려주는 것

 

  • api는 객체를 반환한다. 
  • HTTPMessageConverter를 통해서 json으로 반환해준다. 
  • view 없이 바로 반환한다.

 

2번과 차이점은 html 태그가 없고 문자만 그대로 나온다는 점이다.

 

api 방법

 


 

2일차 후기

어제 해결 못한 오류 해결해서 기분 좋았다.

강좌 도중에 jsp가 나와서 반가웠다.

get 방식과 post 방식을 외워둬서 이해하기 쉬웠다.

 

 

강좌 사이트

 

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com