본문 바로가기
반응형

Clone Coding22

[AWS RDS] db 환경 만들기 RDS 생성 구글 콘솔( aws.amazon.com/ko/ )에서 RDS를 들어가자. 데이터베이스 생성 버튼을 클릭한 뒤, 데이터베이스 생성 옵션은 아래 이미지를 따른다. (붉은색: 기입 값 필수 및 동일하게, 파란색: 기입 값 필수 및 설정 자유) MariaDB를 사용한 이유는 1. Oracle, MSSQL 등은 동일한 사양 대비 가격이 높다 2. Amazon Aurora로 교체하기 용이하다. Amazon Aurora는 MySQL과 PstgreSQL을 클라우드 기반에 맞게 재구성한 DB다. 클라우드 서비스에서 가장 적합한 데이터베이스이기 때문에 많은 회사가 사용한다. 여기서 선택하지 않는 이유는 프리티어 대상이 아니고 최소 비용이 월 10만원이라 MariaDB를 택했다. 모든 옵션을 설정하고 데이터베이.. 2021. 1. 25.
[AWS EC2] 서버 환경 만들기 AWS에 가입이 되어있다는 가정 하에 진행한다. https://aws.amazon.com/ko/에서 로그인한 뒤, 본격적으로 서버를 생성해보자. 인스턴스 생성하기 콘솔로 들어가서 지역을 서울로 바꿔준 뒤, EC2를 생성한다. (EC2: AWS에서 제공하는 성능, 용량 등을 유동적으로 사용할 수 있는 서버) t2: 요금 타입, micro: 사양 3. 인스턴스 구성, 4. 스토리지 추가는 필수로 적어둘게 없어서 생략한다. (자유롭게 설정하면 된다. 단, 무료 버전 사용 시 4에서 스토리지는 최대 30GB까지) 웹 콘솔에서 표기될 태그인 Name 태그를 등록했다. 태그는 해당 인스턴스를 표현하는 여러 이름으로 사용될 수 있으며 EC2의 이름을 붙인다고 생각하면 된다. SSH + 22 port - AWS EC2.. 2021. 1. 22.
[Spring Security] 기존 테스트에 시큐리티 적용하기 테스트 코드를 작성했을 때는 API를 바로 호출해서 만들었다. 하지만 시큐리티 옵션이 활성화되면서 인증된 사람만 API를 호출할 수 있게 되어 테슽트 코드마다 인증한 사용자가 호출한 것처럼 작동하도록 수정해야 한다. 일단 전체 테스트를 한 번 돌려보자 문제1 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file [..\SecurityConfig.class] :Unsatisfied dependency expressed through constructor parameter 0; org.springframework.beans.facto.. 2021. 1. 22.
[OAuth 2] 네이버 로그인 연동하기 네이버 API 등록 developers.naver.com/apps/#/register?api=nvlogin 접속 등록 후에는 Client ID와 Client Secret을 확인할 수 있다. 해당 키 값을 application-oauth.properties에 등록한다. 네이버에서는 스프링 시큐리티를 공식 지원하지 않기 때문에 전부 수동으로 입력해야 한다. #registration spring.security.oauth2.client.registration.naver.client-id=클라이언트아이디 spring.security.oauth2.client.registration.naver.client-secret=클라이언트시크릿 spring.security.oauth2.client.registration.na.. 2021. 1. 21.
[OAuth 2] 구글 로그인 연동하기 Spring Security - 막강한 인증, 인가 기능을 가진 프레임워크 OAuth : 인터넷 사용자들이 비밀번호 제공하지 않고 다른 웹 사이트 상의 자신들의 정보에 대해 웹 사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단. - ex: 네이버 아이디로 로그인, 구글 아이디로 로그인, ... 들어가기 전에... 본 프로젝트에서는 Spring Boot 2 방식인 Spring Security Oauth2 Client 라이브러리를 사용한다. - 기존의 1.5에서 사용되던 프로젝트는 신규 기능이 더이상 없을 예정 - 스프링 부트용 라이브러리 출시 - 이전 사용 방식은 확장 포인트가 적절히 오픈되어 있지 않아 직접 상속/오버라이딩 해야함 이 책 외의 스프링 부트 2 방식의 자료를 찾고 싶은 경우.. 2021. 1. 21.
[Mustache & Spring] 전체 조회 화면 만들기 UI 변경 index.mustache에 게시글 목록을 나타낼 테이블 코드를 추가 {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 글 등록 게시글 번호 제목 작성자 최종 수정일 {{#posts}} {{id}} {{title}} {{author}} {{modifiedDate}} {{/posts}} {{>layout/footer}} Repostiory 수정 PostsRepository.interface 수정 public interface PostsRepository extends JpaRepository{ @Query("SELECT p FROM Posts p ORDER BY p.id DESC") List findAllDesc(); } @Query - SpringDataJpa에서 제공하지 않.. 2021. 1. 19.
[Mustache] 게시글 등록 화면 만들기 공통 코드 게시글 등록 화면에 앞서 부트스트랩과 제이쿼리 라이브러리를 추가하겠다. 이 라이브러리들은 mustache 화면 어디서나 들어가는 공통 코드들이니 별도로 레이아웃 파일을 추가하겠다. 본 프로젝트는 간단한 규모이니 외부 CDN을 사용한다. 하지만 실무에서는 이 방법을 사용하면 CDN 서비스하는 곳에 문제 생기면 CDN을 사용한 화면에서도 덩달아 문제가 생겨버리니 잘 쓰지 않고, 직접 라이브러리를 받아서 사용한다. src/main/resources/templates/layout에 header, footer를 만든다. header.mustache footer.mustache 위 코드를 보면 header에 css, footer에 js 파일이 추가되었다. html은 기본적으로 위에서 아래로 코드가 실행되.. 2021. 1. 19.
[Mustache] 화면 구성 Mustache란? 머스테치는 다양한 언어를 지원하는 심플한 템플릿 엔진이다. (템플릿 엔진: 지정된 템플릿 양식과 데이터가 합쳐져 html 문서를 출력하는 소프트웨어.) java에서 이용할 때는 서버 템플릿 엔진, javascript에서 이용할 때는 클라이언트 템플릿 엔진으로 모두 사용 가능하다. 서버 템플릿 엔진의 종류 - JSP, Velocity: 스프링 부트에서 권장 x - Freemarker: 템플릿 엔진으로서 과한 기능 지원. 숙련도 낮으면 비즈니스 로직 추가의 확률 有 - Thymeleaf: 스프링에서 권장. 문법이 어려움 - Mustache: 심플. 하나의 문법으로 서버/클라 모두 사용 가능. Intellij를 기준으로, thymeleaf의 플러그인은 유료이므로 이 프로젝트에선 Mustac.. 2021. 1. 18.
[JPA Auditing] 생성/수정시간 자동화 보통 entity에는 언제 만들어졌는지, 언제 수정됐는지 등 유지보수를 위해 데이터의 생성/수정시간을 포함한다. DB에 삽입 전, 갱신 전 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가게 되는 단순하고 반복적인 코드를 매번 작성하는게 번거롭고 코드가 지저분해진다. 이를 해결하기 위한 것이 JPA Auditing이다. 시간을 구하는데 Date, Calendar, LocalDate 등 여러가지가 있다. 이슈 - Date와 Calendar는 몇 가지 문제가 있었는데, Java 8에서는 이를 개선하며 LocalDate가 등장했다. ( yeonyeon.tistory.com/24?category=916856 참고) - LocalDate와 LocalDateTime이 db에 제대로 매핑되지 않는 이슈가 있었는데 .. 2021. 1. 18.
반응형