'스프링부트' 태그의 글 목록 (6 Page)
my code archive
article thumbnail
스프링부트 공부기록(11) - 게시판 프로젝트 :: 네이버 API 로그인 구현하기

지난번에 만든 구글 로그인에 이어 이번에는 네이버 로그인을 추가해 보도록 한다. 1. 네이버 오픈 API 홈페이지로 이동 애플리케이션 - NAVER Developers developers.naver.com 2. 애플리케이션 이름을 입력하고 네이버 아이디로 로그인 선택 3. 서비스 URL 등록.(=구글에서 등록한 리디렉션 URL 같은 역할) 여기까지 마치면 끝! 클라이언트 ID와 비밀번호가 발급된다. 4. application-oauth.properties에 네이버api 관련 키값들을 수동으로 등록한다. 구글과 달리 네이버에서는 스프링 시큐리티를 공식 지원하지 않아 수동으로 입력 필요. user_name_attribute = response : 네이버 회원 조회 시 반환되는 JSON 형태이기 때문에 res..

article thumbnail
스프링부트 공부기록(10) - 게시판 프로젝트 :: 스프링 시큐리티, OAuth 2.0 구글 로그인 구현하기

🔍스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트? 많은 서비스에서 구글, 페이스북 등 소셜 로그인 기능을 사용하는 추세. 그 이유는 직접 구현하는 것보다 OAuth를 써서 구현하는 것이 더 간단하기 때문이다. 로그인 시 보안, 비밀번호 변경&찾기 등등 모든 서비스를 소셜 서비스에 맡기고 그외의 개발에 집중할 수 있다. 🤍구글 서비스 등록 1. 구글 서비스 등록 구글 클라우드 플랫폼 으로 이동해서 프로젝트를 만든다. API 및 서비스로 이동해서 사용자 인증 정보를 만든다. 먼저 동의화면을 구성해준 다음 OAuth 클라이언트 ID를 만들어준다. 스프링 부트2 버전의 시큐리티에서는 기본적으로 {도메인}/login/oauth2/code/{소셜서비스코드} 리다이렉트 URL을 지원하고 있다. 사용자가 별..

article thumbnail
스프링부트 공부기록(9) - 게시판 프로젝트 :: 머스테치 사용, 게시판 글 조회, 수정, 삭제 구현하기

🤍게시판 글 목록 조회 1. index.mustache UI 변경 {{#posts}} : posts라는 List를 순회하겠다, 자바의 for문과 동일함. {{id}} 등의 {{변수명}} : List에서 뽑아낸 객체의 필드를 사용하겠다. 2. PostsRepository 인터페이스에 쿼리 추가 SpringDataJpa에서 제공하지 않는 메소드는 @Query를 사용하여 작성 가능함, 기본 메소드만으로 해결이 가능하지만 @Query가 훨씬 가독성이 좋다. @Query : 타입 안정성이 보장됨 / 국내 많은 회사(쿠팡, 배민 등 JPA를 적극적으로 사용하는 회사)에서 사용 중 / 래퍼런스가 많음.(많은 회사, 개발자들이 사용하는 만큼 국내 자료가 많음.) @Query("SELECT p FROM Posts p O..

article thumbnail
스프링부트 공부기록(8) - 게시판 프로젝트 :: 머스테치 사용, 게시판 글 등록 구현하기

지난번 포스팅에서 머스테치를 사용하여 첫 페이지까지 만들었다. 이제 만들어둔 머스테치에 URL을 매핑해야 한다. 1. IndexController 클래스 작성 머스테치 스타터 덕분에 컨트로러에서 문자열 반환 시 앞의 경로와 뒤의 파일 확장자는 자동으로 지정됨. 앞의 경로는 src/main/resources/templates , 확장자는 .mustache 로 전환되어 View Resolver가 처리하게 됨. 2. IndexControllerTest 클래스 작성 테스트 통과 🤍게시판 글 등록 화면 만들기 :: 부트스트랩 활용 1.레이아웃 파일 만들기 header.mustache footer.mustache 페이지 로딩 속도를 높이기 위해 css는 header, js는 footer에 위치함. HTML은 위에서..

article thumbnail
스프링부트 공부기록(7) - 머스테치(Mustache) 화면 구성하기

🤍서버 템플릿 엔진이란? 템플릿 엔진이란, 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 이야기함. JSP, Freemarker - 서버 템플릿 엔진 / 리액트, 뷰 - 클라이언트 템플릿 엔진 서버 템플릿 엔진은 서버에서 구동됨. 서버 템플릿 엔진을 이용한 화면 생성은 서버에서 Java 코드로 문자열을 만든 뒤 이 문자열을 HTML로 변환하여 브라우저로 전달함. 반대로 자바스크립트는 브라우저 위에서 작동하기 때문에 뷰,리액트를 이용한 SPA는 브라우저에서 화면을 생성함. 서버에서는 Json, Xml 형식의 데이터만 전달하고 클라이언트에서 조립합. 🤍머스테치란? 머스테치는 루비, 자바스크립트, 파이썬, PHP, 자바 등 현존하는 대부분 언어를 지원하는 가장 심플한 템플릿 엔진임..

article thumbnail
스프링부트 공부기록(6) - JPA Auditing으로 생성 시간/수정시간 자동화하기

보통 웹 개발을 할 때 해당 데이터의 생성 시간, 수정 시간을 포함한다. 이번 쇼핑몰 프로젝트를 진행할 때에도 상품 등록 날짜, 수정 날짜가 포함되어 있었다. 이처럼 언제 만들어졌고 언제 수정되었는지 등은 차후 유지 보수에 있어 굉장히 중요한 정보이기 때문이고 매번 DB에 삽입하기 전, 갱신하기 전에 날짜 데이터를 등록/수정하는 코드가 여기저기 들어가게 된다. Java8이 나오기 전에는 Data, Calendar 클래스를 사용했지만 몇 가지 문제점이 있었고, 이제는 Java8 이후부터 LocalDate, LocalDateTime을 사용할 수 있다. 🤍1. BaseTimeEntity 클래스 생성 모든 Entity의 상위 클래스가 되어 Entity들의 createdDate(생성 날짜), modifiedDat..

article thumbnail
스프링부트 공부기록(5) - 게시판 프로젝트 :: Dao 도메인 패키지, 글 등록, 수정, 조회 JPA 어노테이션, 테스트 코드 작성

domain 패키지 : 도메인을 담을 패키지, 여기에서 도메인이란? 게시글, 댓글, 회원, 결제 등 소프트웨어에 대한 요구사항 혹은 문제 영역에 해당됨. 기존 MyBatis에서 dao 패키지 역할과 비슷함. 단, 기존에는 xml에 쿼리를 작성하고 클래스에서 쿼리의 결과를 담았다면 이제 모든 것이 도메인 패키지에서 해결됨. Web, Sercice, Repository, Dto, Domain 5가지 레이어 중 비지니스 처리를 담당할 곳이 바로 Domain. 기존에는 모든 로직이 서비스 클래스 내부에서 처리됐기 때문에 서비스 계층이 무의미했으나 도메인 모델에서 처리할 경우 각자 본인의 이벤츠 처리를 하며 서비스 메소드는 트랜잭션과 도메인 간의 순서만 보장해 준다. 테스트 코드 작성 패키지 구조 🤍1. Post..

article thumbnail
스프링부트 공부기록(4) - JPA로 데이터베이스 다루기

12월 중순부터 2월말까지 열심히 학원 팀프로젝트를 진행했다. 진행하면서 느낀 점은 웹 개발과 DB가 정말 뗄레야 뗄 수 없는 관계구나...생각했다...ㅎㅎ 코드 한줄 한줄 짜는 것만큼 쿼리문 한줄 한줄 짜는 것도 정말 어렵고 복잡했는데 스프링부트에서는 JPA라는 새로운 데이터베이스 기술을 사용하고 있다고 한다. 쿠팡, 우아한형제들 등 자사 서비스를 개발하는 곳에서는 SpringBoot&JPA를 전사 표준으로 사용하고 있다고 한다. 🤍JPA란? 기존 데이터베이스 방식은 객체지향 프로그래밍에서 조금 벗어난, 데이터베이스 모델링에만 집중하는 방향이었다. JPA는 이런 문제점을 해결하기 위해 등장했다. 관계형 데이터베이스 - 객체지향 프로그래밍 언어 2개 영역을 중간에서 패러다임 일치를 시켜주기 위한 기술. ..

반응형
반응형