- 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기
1-1. build.gradle
ext: 전역변수를 설정
io.spring.dependency-management plugin: 스프링 부트의 의존성들을 관리해 주는 플러그인
repositories: 각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을지를 정함
dependencies: 프로젝트 개발에 필요한 의존성들을 선언하는 곳
- 인텔리제이에서 깃과 깃허브 사용하기
- 테스트 코드 작성
- JPA
- 머스테치로 화면 구성
- 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현
- AWS 서버 환경 - AWS EC2
EC2 만드는법
JPA(Java Persistance API) ?
**definition**
* ORM 기술을 구현한 프레임워크에 대한 표준화.
※ORM: Object-Relational Mapping 기술, 객체와 RDBMS를 매핑하는 역할
(<https://gmlwjd9405.github.io/2019/02/01/orm.html>)
* JDBC 인터페이스
**왜 사용하는지**
* java.sql을 사용하여 JDBC를 코딩할 필요가 없음
**사용 방법** (ref: <https://m.blog.naver.com/writer0713/220880329884>)
1. 객체 관계 맵퍼(Object-Relational mapper) (e.g.Hibernate(레드햇)), 자바 객체로
간접적으로 DB데이터를 다룸
2. SQL mapper: (e.g.mybatis(아파치)), SQL로 직접 DB데이터를 다룸.
- 빌더 클래스: 값을 채운 후 DB에 삽입하는 클래스
**출처**
1) JPA, Hibernate, 그리고 Spring Data JPA의 차이점: <https://suhwan.dev/2019/02/24/jpa-vs-hibernate-vs-spring-data-jpa/>
스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기
- openid라는 scope가 있으면 Open Id Provider로 인식하기 때문에 OpenId Provider인 서비스(구글)와 그렇지 않은 서비스(네카 등)로 나눠서 각각 OAuth2Service를 만들어야 함.
AWS-RDS deploy
* deploy
application.properties
(주석) spring.jpa.properties.hibernate.dialect.storage_engine=innodb
(주석) spring.datasource.hikari.jdbc-url=jdbc:h2:mem://localhost/~/testdb;MODE=MYSQL
application-real.properties
(주석) spring.jpa.properties.hibernate.dialect.storage_engine=innodb
Travis CI
CI: VCS 시스템에 PUSH가 되면 자동으로 테스트와 빌드가 수행되어 '안정적인 배포 파일을 만드는 과정'
CD: 빌드 결과를 자동으로 운영 서버에 무중단 배포까지 진행되는 과정
IAM: AWS에서 제공하는 서비스의 접근 방식과 권한을 관리함
S3: 일종의 파일 서버
test data
<http://localhost:8080/hello>
<http://localhost:8080/hello/dto?name=bjk&amount=1>
<http://localhost:8080/h2-console>
<http://localhost:8080/api/v1/posts/1>
<http://localhost:8080/posts/save>
reference:
code-github: <https://github.com/jojoldu/freelec-springboot2-webservice>
GCP: <https://console.cloud.google.com>
my github: <https://github.com/black2076/intellij-workspace>
Naver: <https://developers.naver.com/apps/#/list>
AWS: <https://aws.amazon.com>
RDS: admin/bjk940609
IP: ec2-3-35-93-175.ap-northeast-2.compute.amazonaws.com
reference
#더티체킹
<https://jojoldu.tistory.com/415>
# (2020.12.16) 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 최신 코드로 변경하기
<https://jojoldu.tistory.com/539?category=717427>
# [컴파일 오류] Lombok 생성자 작성 오류
<https://github.com/binchoo/spring-boot-210523/issues/4>
# IDE - gitignore 생성
<https://www.toptal.com/developers/gitignore/api/intellij>
# JPA - MySQL5InnoDBDialect 이 Deprecated <https://github.com/jojoldu/freelec-springboot2-webservice/issues/67#issuecomment-566523952>
# .gitignore가 작동하지 않을때 대처법
<https://jojoldu.tistory.com/307>
# export intellij war
<https://baboototo.tistory.com/29>
# AWS hostname 변경
<https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/set-hostname.html>
# Travis CI gradlew Permission denied
<https://jokerkwu.tistory.com/179>
# AWS CodeDeploy Agent 설치 시 발생 오류
<https://sarc.io/index.php/aws/1875-error-aws-codedeploy-agent>
# Linux 명령어
* java 8 설치
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
* 시간 변경
sudo rm /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Seoul /etc/localtime
# TDD
<http://bit.ly/2xtKinX>
정리 필요