일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 프로그래머스
- C++
- index.html
- rombok
- JPA autiding
- gitignore
- Gradle
- SpringBean
- Java
- DynamicProgramming
- SpringDataJPA
- test case
- JPA
- springboot
- testcode
- 해싱
- 알고리즘 #코딩테스트 #프로그래머스 #C++ #vector #string
- TDD
- Comparable
- mustache
- SpringFramework
- 코딩테스트
- DB
- SpringSecurity
- tdo
- baekjoon
- spring
- 알고리즘
- kotlin
- API
- Today
- Total
목록전체 글 (21)
천천히, 한결같이
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 스프링 시큐리티와 OAuth2 클라이언트 스프링 시큐리티(Spring Security)는 스프링 기반의 애플리케이션의 보안 (인증, 권한, 인가 등)을 담당하는 하위 프레임워크 입니다. 스프링 기반 애플리케이션의 보안을 위한 표준이라고 생각하면 됩니다. 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 일일이 보안 관련 로직을 작성하지 않아도 되고 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권장하고 있습니다. OAuth2 클라이언트(Open Authorization, Open Authentication 2)는 인증을 위한 표준 프로토..
github에 커밋할 때, 사용자가 커밋을 원하지 않는 파일들을 .gitignore파일에 등록하면 자동으로 커밋되는 것을 막을 수 있습니다. 보안을 위해서 OAuth Client에 관련된 정보를 담는 application-oauth.properties 파일이나, spring 프로젝트에서 IntelliJ가 자동으로 생성하는 .idea폴더 내부의 파일, gradle 프로젝트에서의 .gradle폴더 등을 .gitignore파일에 등록한다면 자동으로 커밋되는 것을 막을 수 있습니다. .gitignore가 제대로 작동하지 않아서 ignore처리된 파일이 자꾸 changes에 나올때가 있습니다. 원치 않는 파일이 커밋되는 경우가 생길 수 있는데, git의 캐시(cache)가 문제가 되는것이라 캐시 내용을 전부 삭제..
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 공통 Layout 추가하기 프론트엔드 라이브러리를 사용할 수 있는 방법은 크게 2가지가 있습니다. 하나는 외부 CDN을 받아서 사용하는 방법이고, 하나는 직접 라이브러리를 받아서 사용하는 방법입니다. 실무에선 외부 CDN을 받아서 사용하게 된다면 외부 CDN에 서비스가 종속, 즉 의존되는 문제가 생기 때문에 후자의 방법을 사용합니다. 저희는 우선 전자인 외부 CDN을 사용해서 구현해 보겠습니다. HTML/JSP/Mustache에 코드만 한 줄 추가하면 사용할 수 있어서 매우 편리합니다! 2개의 라이브러리 부트스트랩과 제이쿼리를 index.must..

이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 기본 페이지 만들기 항상 스프링의 프로젝트에서 새로운 DB, 언어 등을 사용하기 위해선 항상 의존성을 추가해야 합니다! 이전에 했던 방법대로, build.gradle에 아래와 같이 입력해서 Mustache의 의존성을 등록합니다. compile('org.springframework.boot:spring-boot-starter-mustache') 의존성을 추가했다면 항상 refresh를 통해서 관련된 설정을 받아옵니다! IntelliJ를 기준으로 dependencies를 새롭게 추가했다면 우측 상단에 나오는 코끼리 아이콘을 클릭해서 의존성을 추가합니..
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 의존성 주입(Dependency Injection) 하나의 객체가 다른 객체의 의존성을 제공하는 테크닉을 보고 의존성 주입(Dependency Injection)이라고 합니다. 객체의 생성과 사용의 관심을 분리하기 위해서 제안된 테크닉입니다. 직접 코드로 보시는게 조금 더 좋을 것 같아서 바로 예제 코드를 보여드리겠습니다. Member //단순하게 보여드리기 위해서 에노테이션, import 등의 일부를 생략했습니다 public class Member { private Long id; private String name; public String ..
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 생성시간/수정시간 보통 엔티티(Entity)에는 해당 데이터의 생성시간과 수정시간을 포함합니다. 언제 만들어졌고 수정되었는지 등에 대한 정보는 차후 유지보수에 있어 굉장히 중요한 정보이기 때문입니다. 하지만 이러한 정보를 계속에서 등록/수정하려면, 코드가 아래처럼 지저분해 지게 됩니다. public void savePosts() { ... posts.setCreateDate(new LocalDate()); postsRepository.save(posts); } 이런 단순 코드가 모든 테이블, 서비스 코드에 포함된다면 코드가 상당히 지저분해집니다...
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. 게시물 수정, 삭제 기능 만들기 PostsApiController package com.hwanld.book.springboot.web; import com.hwanld.book.springboot.service.posts.PostsService; import com.hwanld.book.springboot.web.dto.PostsSaveRequestDto; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; @RequiredArgsCons..
이동욱 님의 스프링 부트와 AWS로 혼자 구현하는 웹 서비스책을 공부하며 정리한 내용입니다. 틀린 정보가 있을 수 있으니 주의하시고 댓글로 남겨주시길 바랍니다. API를 만들기 위한 클래스 API를 만들기 위해선 아래 3개의 클래스가 필요합니다. Request 데이터를 받을 DTO API 요청을 받을 Container 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service Service클래스는 오직 트랜젝션, 도메인 간 순서 보장의 역할만 합니다. 게시물 등록 기능 만들기 우선 PostsApiController를 web패키지에, PostsSaveRequestDto를 web.dto패키지에, PostsService를 service.posts패키지에 생성합니다. 각 클래스의 코드는 아래와 같습니다. Pos..