스프링부트 [Docker] Spring 프로젝트를 Docker를 이용해서 배포해봅시다 위의 커맨드는, Docker를 올릴 때 jdk11 버전을 이용해서 올리겠다라고 선언하는 커맨드입니다. 위의 커맨드는, 프로젝트의 jar 파일 위치를 참조하여 jar 파일을 가져와서 컨테이너의 루트 디렉토리에 app.jar의 이름으로 복사하는 커맨드입니다. 위의 커맨드는, 도커파일이 도커엔진을 통해서 컨테이너로 올라갈 때, 도커 컨테이너의 시스템 진입점이 어디인지를 선언하는 커맨드입니다. 위의... 스프링부트devopsdockerdevops 스프링부트 - 스프링시큐리티 세션방식 스프링부트에서 Redis를 연동하는 연습용 프로젝트를 만들어 보겠습니다! 깃헙에 있는 정리본을 참고해주세요! 스프링시큐리티, h2 database, 타임리프 의존성을 추가해줬습니다. 회원 정보를 저장할 DB로 간단한 h2를 사용해줍니다. (대신 서버가 종료되면 DB도 날라감!) 스프링 시큐리티 의존성을 추가하면, WebSecurityConfigurerAdapter 클래스가 실행됨. 여기서는 ... Springboot로그인SpringSecurity스프링부트쿠키스프링시큐리티세션SpringSecurity [JPA] @OneToMany 연관관계 매핑 시작 @OneToMany 매핑, 즉 일대다 관계를 스프링 부트에서 어떤 식으로 적용시키면 좋을지에 대해 알아본다. 일대다(1:N) 관계 일대다 관계란, 한 쪽의 엔티티가 다른 쪽의 엔티티의 객체 여러개를 가질 수 있을 때를 의미하는 관계이다. 예를 들어, 하나의 팀은 여러명의 선수를 가질 수 있다. 이런 경우를 팀이 선수와 일대다 관계를 맺고 있다고 말할 수 있다. 이를 그림으로 나타내면 다... JPA스프링부트JPA [DevOps] 스프링 서버 모놀리식 배포하기 - 환경구축(2) 본 실습에서는 AWS가 제공하는 RDS, EC2 기능을 사용할 예정입니다. 우선 AWS RDS 서비스를 이용하여 MySQL 데이터베이스를 생성하겠습니다. RDS 서비스 페이지로 접근을 하셨다면, 데이터베이스 생성 버튼을 눌러줍니다. 그리고, 아래의 방법대로 데이터베이스 환경 구축을 해주면됩니다. MySQL 데이터베이스 엔진을 선택합니다. DB 인스턴스 식별자 에는 RDS Instance 요약... 모놀리식스프링부트모놀리식 spring boot + vue.js 환경 구성하기 그러다 기회가 생겨 웹 개발을 잠시하게 되었는데 spring boot안에 vue.js를 함께 쓰는 아키텍처로 구성이 된 프로젝트였다. 프리랜서에 도움이 받아 개발을 진행하게 되었는데 그때 당시에는 너무 모르는게 많아 원래 그런가보다 하고 일을 진행하다가 프로젝트가 마무리되고 나서 spring boot에 vue가 들어가면 router를 사용 할 수 없는건가? 하는 의구심이 들어 찾아보았고 답을... vuejs스프링부트vuejs 스프링부트-Auditing을 이용해 공통컬럼 설정하기 판매자가 상품을 등록할 때, 소비자가 가입할 때, 상품에 대한 문의를 남길때 등 많은 경우에 해당 엔티티의 등록 시간 즉 insert 시점을 기록해야 할 것이다. **이처럼 테이블이나 서비스에 특정 기능이 반복될 때 주로 사용하는 것이 Auditing 기능이다. 그럼 생성시간과 수정시간 두가지를 Auditing 설정하여 DB에 등록되도록 해보자. 스프링 프로젝트를 실행할 때 기본이 되는 것이... JPA스프링부트JPA JPA시작, 영속성 관리 따라서 JPA 를 시작하기 위해서는 persistence.xml의 설정 정보를 통해 엔티티 매니저 팩토리를 생성해야 한다. 엔티티 매니저 팩토리는 설정 정보를 읽고 JPA를 동작시키기 위한 객체를 만들고 구현체에 따라서 커넥션 풀도 생성하게 된다 따라서 비용이 크므로 전체에서 딱 한번만 생성하고 공유하게 된다. 엔티티 매니저는 JPA의 대부분의 기능을 담당하며 데이터 베이스에 CRUD가 가능... 자바JPA스프링부트영속성컨텍스트JPA Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 h2 데이터베이스 테스트할 때 위의 오류가 발생했다. 하지만 구글링으로 오류 해결 runtimeOnly 'com.h2database:h2' 지우기 runtimeOnly 'com.h2database:h2' spring.datasource.url=jdbc:h2:mem:testdb'... mem:testdb스프링부트Springboot스프링부트와 AWS로 혼자 구현하는 웹 서비스Springboot 스프링 부트 JPA JPA 사용이유 관계형데이터베이스 -> 데이터를 어떻게 저장할지 초점을 맞춤 객체지향 프로그래밍 -> 메세지 기반 기능과 속성을 한곳에다 관리하는 기술 둘은 시작점부터 틀림 그래서 패러다임 불일치 발생... 그러면? 개발방향은 데이터베이스 모델링에만 집중하는 현상 발생. (ex:mybatis) 그래서 JPA는 중간에서 패러다임을 일치시켜주기 위한 기술 개발자는 객체지향 프로그래밍을하고 SQL... JPA스프링부트JPA 스프링의 특징 스프링은 IOC 컨테이너를 가진다. 스프링은 DI(DependencyInjection)를 지원한다. 스프링은 많은 필터를 가지고있다. 스프링은 많은 어노테이션을 가지고있다. 스프링은 MessageConverter를 가지고있다. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다. 스프링은 이 문제를 쉽게 해결해준다. 스프링은 사용자가 가지고있는 수많은 객체... 스프링부트스프링부트 Spring Boot 의 자동설정에 대한 이해 에서 스프링 부트의 소개글로 다음과 같은 글이 있다 부트 프로젝트를 생성할 때, spring-boot-starter-web 의존성만 추가하고 프로젝트를 생성하면 아무런 작업을 하지 않아도 어플리케이션을 실행하면 8080포트위에서 톰캣서버가 돌아가는 것을 확인할 수 있다. @EnableAutoConfiguration 에서 스프링 부트가 사용할 빈들을 자동으로 등록해주는 역할을 한다. 그렇다면,... 스프링부트의자동설정스프링부트스프링부트 Spring Boot. 객체지향 == 유연하고 변경이 용이하다 , 확장 가능한 설계 다형성 Polymorphism 역할과 구현으로 구분 자동차가 바뀌어도(구현이 바뀌어도), 운전자에게 영향을 미치지 않는다 따라서 자동차 세계를 무한히 확장할 수 있다! 즉, 클라이언트에 영향을 미치지 않는 선에서 새로운 기능을 적용시킬 수 있다 객체를 설계할 때 역할과 구현을 명확히 분리하여, 객체 설계 시 역할(인터페이스)을 먼저 부여하고... 객체지향스프링부트Springboot객체자바Springboot [Spring Boot] JPA 필터 정렬 구현 spring-boot 2.6.3 spring-boot-starter-data-jpa querydsl 1.0.10 build.gradle application.yml 구조 테스트 더미 데이터를 자동으로 넣어주는 GeneratorService 생성 필터와 정렬에 사용할 DB 제작 user - 유저 테이블 board - 게시물 테이블(postType로 필터 구현, 작성시간과 조회수로 정렬 구현) ... JPA스프링부트JPA
[Docker] Spring 프로젝트를 Docker를 이용해서 배포해봅시다 위의 커맨드는, Docker를 올릴 때 jdk11 버전을 이용해서 올리겠다라고 선언하는 커맨드입니다. 위의 커맨드는, 프로젝트의 jar 파일 위치를 참조하여 jar 파일을 가져와서 컨테이너의 루트 디렉토리에 app.jar의 이름으로 복사하는 커맨드입니다. 위의 커맨드는, 도커파일이 도커엔진을 통해서 컨테이너로 올라갈 때, 도커 컨테이너의 시스템 진입점이 어디인지를 선언하는 커맨드입니다. 위의... 스프링부트devopsdockerdevops 스프링부트 - 스프링시큐리티 세션방식 스프링부트에서 Redis를 연동하는 연습용 프로젝트를 만들어 보겠습니다! 깃헙에 있는 정리본을 참고해주세요! 스프링시큐리티, h2 database, 타임리프 의존성을 추가해줬습니다. 회원 정보를 저장할 DB로 간단한 h2를 사용해줍니다. (대신 서버가 종료되면 DB도 날라감!) 스프링 시큐리티 의존성을 추가하면, WebSecurityConfigurerAdapter 클래스가 실행됨. 여기서는 ... Springboot로그인SpringSecurity스프링부트쿠키스프링시큐리티세션SpringSecurity [JPA] @OneToMany 연관관계 매핑 시작 @OneToMany 매핑, 즉 일대다 관계를 스프링 부트에서 어떤 식으로 적용시키면 좋을지에 대해 알아본다. 일대다(1:N) 관계 일대다 관계란, 한 쪽의 엔티티가 다른 쪽의 엔티티의 객체 여러개를 가질 수 있을 때를 의미하는 관계이다. 예를 들어, 하나의 팀은 여러명의 선수를 가질 수 있다. 이런 경우를 팀이 선수와 일대다 관계를 맺고 있다고 말할 수 있다. 이를 그림으로 나타내면 다... JPA스프링부트JPA [DevOps] 스프링 서버 모놀리식 배포하기 - 환경구축(2) 본 실습에서는 AWS가 제공하는 RDS, EC2 기능을 사용할 예정입니다. 우선 AWS RDS 서비스를 이용하여 MySQL 데이터베이스를 생성하겠습니다. RDS 서비스 페이지로 접근을 하셨다면, 데이터베이스 생성 버튼을 눌러줍니다. 그리고, 아래의 방법대로 데이터베이스 환경 구축을 해주면됩니다. MySQL 데이터베이스 엔진을 선택합니다. DB 인스턴스 식별자 에는 RDS Instance 요약... 모놀리식스프링부트모놀리식 spring boot + vue.js 환경 구성하기 그러다 기회가 생겨 웹 개발을 잠시하게 되었는데 spring boot안에 vue.js를 함께 쓰는 아키텍처로 구성이 된 프로젝트였다. 프리랜서에 도움이 받아 개발을 진행하게 되었는데 그때 당시에는 너무 모르는게 많아 원래 그런가보다 하고 일을 진행하다가 프로젝트가 마무리되고 나서 spring boot에 vue가 들어가면 router를 사용 할 수 없는건가? 하는 의구심이 들어 찾아보았고 답을... vuejs스프링부트vuejs 스프링부트-Auditing을 이용해 공통컬럼 설정하기 판매자가 상품을 등록할 때, 소비자가 가입할 때, 상품에 대한 문의를 남길때 등 많은 경우에 해당 엔티티의 등록 시간 즉 insert 시점을 기록해야 할 것이다. **이처럼 테이블이나 서비스에 특정 기능이 반복될 때 주로 사용하는 것이 Auditing 기능이다. 그럼 생성시간과 수정시간 두가지를 Auditing 설정하여 DB에 등록되도록 해보자. 스프링 프로젝트를 실행할 때 기본이 되는 것이... JPA스프링부트JPA JPA시작, 영속성 관리 따라서 JPA 를 시작하기 위해서는 persistence.xml의 설정 정보를 통해 엔티티 매니저 팩토리를 생성해야 한다. 엔티티 매니저 팩토리는 설정 정보를 읽고 JPA를 동작시키기 위한 객체를 만들고 구현체에 따라서 커넥션 풀도 생성하게 된다 따라서 비용이 크므로 전체에서 딱 한번만 생성하고 공유하게 된다. 엔티티 매니저는 JPA의 대부분의 기능을 담당하며 데이터 베이스에 CRUD가 가능... 자바JPA스프링부트영속성컨텍스트JPA Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 h2 데이터베이스 테스트할 때 위의 오류가 발생했다. 하지만 구글링으로 오류 해결 runtimeOnly 'com.h2database:h2' 지우기 runtimeOnly 'com.h2database:h2' spring.datasource.url=jdbc:h2:mem:testdb'... mem:testdb스프링부트Springboot스프링부트와 AWS로 혼자 구현하는 웹 서비스Springboot 스프링 부트 JPA JPA 사용이유 관계형데이터베이스 -> 데이터를 어떻게 저장할지 초점을 맞춤 객체지향 프로그래밍 -> 메세지 기반 기능과 속성을 한곳에다 관리하는 기술 둘은 시작점부터 틀림 그래서 패러다임 불일치 발생... 그러면? 개발방향은 데이터베이스 모델링에만 집중하는 현상 발생. (ex:mybatis) 그래서 JPA는 중간에서 패러다임을 일치시켜주기 위한 기술 개발자는 객체지향 프로그래밍을하고 SQL... JPA스프링부트JPA 스프링의 특징 스프링은 IOC 컨테이너를 가진다. 스프링은 DI(DependencyInjection)를 지원한다. 스프링은 많은 필터를 가지고있다. 스프링은 많은 어노테이션을 가지고있다. 스프링은 MessageConverter를 가지고있다. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다. 스프링은 이 문제를 쉽게 해결해준다. 스프링은 사용자가 가지고있는 수많은 객체... 스프링부트스프링부트 Spring Boot 의 자동설정에 대한 이해 에서 스프링 부트의 소개글로 다음과 같은 글이 있다 부트 프로젝트를 생성할 때, spring-boot-starter-web 의존성만 추가하고 프로젝트를 생성하면 아무런 작업을 하지 않아도 어플리케이션을 실행하면 8080포트위에서 톰캣서버가 돌아가는 것을 확인할 수 있다. @EnableAutoConfiguration 에서 스프링 부트가 사용할 빈들을 자동으로 등록해주는 역할을 한다. 그렇다면,... 스프링부트의자동설정스프링부트스프링부트 Spring Boot. 객체지향 == 유연하고 변경이 용이하다 , 확장 가능한 설계 다형성 Polymorphism 역할과 구현으로 구분 자동차가 바뀌어도(구현이 바뀌어도), 운전자에게 영향을 미치지 않는다 따라서 자동차 세계를 무한히 확장할 수 있다! 즉, 클라이언트에 영향을 미치지 않는 선에서 새로운 기능을 적용시킬 수 있다 객체를 설계할 때 역할과 구현을 명확히 분리하여, 객체 설계 시 역할(인터페이스)을 먼저 부여하고... 객체지향스프링부트Springboot객체자바Springboot [Spring Boot] JPA 필터 정렬 구현 spring-boot 2.6.3 spring-boot-starter-data-jpa querydsl 1.0.10 build.gradle application.yml 구조 테스트 더미 데이터를 자동으로 넣어주는 GeneratorService 생성 필터와 정렬에 사용할 DB 제작 user - 유저 테이블 board - 게시물 테이블(postType로 필터 구현, 작성시간과 조회수로 정렬 구현) ... JPA스프링부트JPA