본문 바로가기

Spring

[Spring] 게시판 만들기 #8 What to do? Pagination 게시판 페이지에서 페이징 바 구현하기 구현 내용 1페이지를 보여줄 때는 Previous버튼과 1페이지 버튼은 disabled 됨 페이지가 변하면, 가운데 현재 페이지를 보여주도록 함 Service Param currentPage - 현재페이지번호 totalPage - 전체페이지수 Return 페이지 List ArticleService에 getPaginationBarNumbers 메써드 추가 public List getPaginationBarNumbers(int currentPage, int totalPage){ int startPage = Math.max(0, currentPage-(PAGINATION_BAR_LENGTH/2)); int endPage = Math.. 더보기
[Spring] 게시판 만들기 #7 What to do? 게시판 화면 만들기 Dto 작성 Controller 코드 작성 Service 코드 작성 View 작성 MySQL 데이터 베이스에 있는 게시글을 렌더링 제목을 클릭하면 해당 게시글로 이동 Entity 수정 UserAccount userAccount 필드를 추가하였고, ManyToOne annotation을 붙여줌 @ToString.Exclude @ManyToOne private UserAccount userAccount; resources/data.sql Entity를 수정해주었기 때문에 기존에 작성한 data.sql 파일 때문에 에러가 난다. Mockaroo에서 가짜 데이터를 생성하는 insert 쿼리를 작성해서 넣어주었다. insert into user_account (email,.. 더보기
[Spring] 게시판 만들기 #6 What to do? 디자인 입히기 Bootstrap CDN 인터넷에 필요한 CSS파일과, JavaScript파일을 다운받아서 사용하는 CDN 방식을 사용 CSS JS link태그는 head태그 맨 밑에, script 태그는 body태그 맨 밑에 위치시키는 것이 관례 (사실 아무대나 넣어도 상관 없음) 시작페이지 resources/index.html Board Board Project With Spring Boot Already Signed Up? ☞☞☞ Sign Up Not Signed Up? ☞☞☞ Login controller/MainController.java localhost:8080/ 경로로 접근하면 resources/index.html 파일을 렌더링 @Controller @RequestMap.. 더보기
[Spring] 게시판 만들기 #5 What to do? View 만들기 Articles Page : 게시글 List가 있는 화면 Detail Page : 게시글 단건을 조회할 수 있는 화면 Thymeleaf Template으로 Thymeleaf를 사용하였다. 이 때 Decoupled Logic을 사용하기 위해 Cofiguraton 파일 작성 @Configuration public class ThymeleafConfig { @Bean public SpringResourceTemplateResolver thymeleafTemplateResolver( SpringResourceTemplateResolver defaultTemplateResolver ) { defaultTemplateResolver.setUseDecoupledLogic(true.. 더보기
[Spring] 게시판 만들기 #4 What to do? API 개발 #2 부분 검색기능 구현하기 게시글(Article)을 검색하는 경우를 생각해보자. 게시글의 제목을 통해 검색을 하는데, 제목을 정확히 알고 하는 경우는 드물다. 보통은 부분 검색을 통해서 검색을 한다. Querydsl을 사용해서 부분검색 기능을 만들어보자 Querydsl 설정 build.gralde 파일을 다음과 같이 수정해주자 Querydsl 의존성 추가 Q Class 파일 생성 경로 지정 Querydsl을 사용하면 빌드 시에 Q class를 생성한다. 예를 들어 Article이라는 Entity가 있으면 QArticle이라는 Q class를 자동을 생성한다. dependencies { ... implementation "com.querydsl:querydsl-jpa" .. 더보기
[Spring] 게시판 만들기 #3 What to do? API 개발 #1 @RepositoryRestResource annotaion을 사용해 Controller 코드 작성 없이 API 만들기 일단 repository, service, controller코드를 작성하지 않고도 만들 수 있는 API를 작성하였다. Article - 생성/조회/수정/삭제 Comment - 생성/조회/수정/삭제 application.yaml data.rest 속성을 다음과 같이 수정해주자 spring: ... data.rest: base-path: /api detection-strategy: annotated Repository 코드 수정 기존에 작성했던 Repository코드에서는 Annotation을 @Repository을 적어주었다. 이를 @Reposit.. 더보기
[Spring] 게시판 만들기 #1 What to do? Entity 설계하기 게시판 서비스에 필요한 Entity 정의하기 User - 유저 Article - 게시글 Comment - 댓글 AuditingFields 다음 필드들을 모든 Entity에 공통적으로 넣을 필드다. 그래서 추상 클래스로 정의하고, 다른 Entity에서 상속받아서 사용하도록 하였다. createAt - 생성한 시간 createBy - 생성한 사람 modifiedAt - 수정한 시간 modfiedBy - 수정한 사람 @Getter @ToString @EntityListeners(AuditingEntityListener.class) @MappedSuperclass public abstract class AuditingFields { @DateTimeFormat(iso .. 더보기
[Spring] 길찾기 서비스 #4 What to do? kakao API 기능 구현 카카오 API 문서에 보고, DTO를 설계하고, Service코드를 작성 환경변수 등록 카카오 API를 활용하기 위해서는 API키가 필요하다. 이전 포스팅(#1)에서 만든 kakao 앱의 API키를 가져오자. IntellJ에서 Edit Configuration버튼을 눌러서, KAKAO API키를 환경변수로 등록한다. application.yaml 파일에서 API KEY를 주입받을수 있도록 하자. kakao: api: base-url: "https://dapi.kakao.com/v2/local/search/address.json" secret-key: ${KAKAO_API_SECRET_KEY} base-url은 뒤에서 설명하겠지만 API 문서에서 나온 GE.. 더보기