본문 바로가기

분류 전체보기

(142)
[스프링부트/AWS] 7장 AWS에 데이터베이스 환경을 만들어보자 (RDS) - RDS(Relational Database Service) aws.amazon.com/ko/rds/?trkCampaign=acq_paid_search_brand&sc_channel=ps&sc_campaign=acquisition_KR&sc_publisher=Google&sc_category=Database&sc_country=KR&sc_geo=APAC&sc_outcome=acq&sc_detail=amazon%20relational%20database%20service&sc_content= 데이터베이스 관리 시스템 | 관계형 RDS | Amazon Web Services Amazon Relational Database Service(RDS)를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, ..
[스프링부트/AWS] 6장 AWS 서버 환경을 만들어보자 AWS - EC2 ※ 참고사항 앞으로 진행하는 실습은 터미널(CMD)에서 주로 진행됩니다. 그래서 저같은 경우에는 파일명, sciprt 오타로 인해서 이슈가 많이 발생했었습니다. 책 또는 블로그에 따라서 진행하면서 정상동작이 안되는 경우에는 오타가 있는지, 없는 지 확인 후 저자 git issue(github.com/jojoldu/freelec-springboot2-webservice/issues) 또는 구글링을 하면 좋습니다. ※ Amazon Linux 2 AMI으로 진행 Amazon Linux AMI의 표준 지원은 2020년 12월 31일에 종료되었다고 합니다. 그래서 Amazon Linux 2 AMI으로 진행합니다. aws.amazon.com/ko/amazon-linux-ami/ AWS | Amazon Linux A..
[스프링부트/AWS] 5장 스프링 시큐리티와 OAuth 2.0으로 로그인 구현하기 - Spring Security Spring Security(스프링 시큐리티)는 Authentication(인증)과 Authrization(인가)기능 (혹은 권한 부여)을 가진 프레임워크 입니다. Interceptor, Filter 기잔의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권장하고 있습니다. Spring Security는 filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 관리 및 동작합니다. ※ 보안관련 용어 정리 접근 주체(Principal) : 보호된 대상에 접근하는 유저 인증(Authenticate) : 현재 유저가 누구인지 확인(ex. 로그인) 애플리케이션의 작업을 수행할 수 있는 주체임을 증명 인가(Authorize) : 현재 유저가 ..
[스프링부트/AWS] 4장 게시글 수정, 삭제 화면 만들기 3 - 게시글 수정 화면 만들기 게시글 수정 API는 이미 만들어 두었습니다.(freewebdev.tistory.com/53) 1) PostsApiController 확인 ... public class PostsApiController { ... @PutMapping("/api/v1/posts/{id}") public Long update(@PathVariable Long id, @RequestBody PostsUpdateRequestDto requestDto){ return postsService.update(id, requestDto); } ... 2) 수정화면 생성(posts-update.mustache) {{>layout/header}} 게시글 수정 글번호 제목 작성자 내용 취소 수정완료 {{>lay..
[스프링부트/AWS] 4장 게시글 등록 화면 만들기 2 앞에서 PostAPiController로 API를 구현하였으니 바로 화면을 개발합니다. 그냥 HTML을 사용하지 않고 오픈소스인 부트스트랩을 이용하여 화면을 만들어 봅니다. 부트스트랩, 제이쿼리 등 프론트엔드 라이브러리를 사용할 수 있는 방법은 크게 2가지가 있습니다. 하나는 외부 CDN을 사용하는 것이고, 다른 하나는 직접 라이브러리를 받아서 상요하는 방법니다. 여기서는 전자인 외부 CDN을 사용합니다. 본인의 프로젝트에 직접 내려받아 사용할 필요도 없고, 사용할 방법도 HTML/JSP/Mustache에 코드만 한 줄 추가하면 되니 굉장히 간단합니다. 실제 서비스에서는 이 방법을 잘 사용하지 않습니다. 결국은 외부 서비스에 우리 서비스가 의존하게 돼버려서, CDN을 서비스하는 곳에 문제가 생기면 덩달아..
[스프링부트/AWS] 4장 머스테치로 화면구성하기 - 서버 템플릿 엔진과 머스테치 소개 지정된 템플릿 양식과 데이터가 합쳐서 HTML 문서를 출력하는 소프트웨어를 이야기합니다. 서버 템플릿 엔진 : JSP, Freemarker 등 클라이언트 템플릿 엔진 : 리엑트(React), 뷰(Vue)의 View 파일들 ※ 자주 올라오는 질문 : 자바스크립트에서 JSP나 Freemarker처럼 자바 코드를 사용할 순 없나요? 이에 대한 예시 코드는 다음과 같습니다. $(document).ready(function(){ if(a=="1"){ } }); 위 코드는 if문과 관계없이 무조건 test를 콘솔에 출력합니다. 이유는 프론트엔드의 자바스크립트(Nodejs가 아닙니다.)가 작동하는 영역과 JSP가 작동하는 영역이 다르기 때문인데, JSP를 비롯한 서버 템플릿 엔진..
[스프링부트/AWS] 3장 스프링 부트에서 JPA로 데이터베이스 다뤄보자(2/2) - Spring 웹계층, CRUD API, Auditing - Spring 웹 계층 API를 만들기 위해 총 3개의 클래스가 필요합니다. Request 데이터를 받을 Dto API 요청을 받을 Controller 트랜잭션, 도메인 기능 간의 순서를 보장하는 Service 여기서 많은 분들이 오해하고 있는 것이, Service에서 비즈니스 로직을 처리해야 한다는 것입니다. 하지만, 전혀 그렇지 않다고 합니다. Service는 트랜잭션, 도메인 간 순서 보장의 역할만 합니다. 1) Web Layer 흔히 사용하는 컨트롤러(@Controller)와 JSP/Freemarker 등의 뷰 템플릿 영역입니다. 이외에도 필터(@Filter), 인터셉트, 컨트롤러 어드바이스(@ContollerAdvice) 등 외부 요청과 응답에 대한 전반적인 영역을 이야기 힙니다. 2) Ser..
[스프링부트/AWS] 3장 스프링 부트에서 JPA로 데이터베이스 다뤄보자(1/3) - JPA 스프링을 배울 때는 Mybatis와 같은 SQL매퍼(Mapper)를 이용해서 데이터베이스의 쿼리를 작성했습니다. 그러다 보디 실제로 개발하는 시간보다 SQL을 다루는 시간이 더 많았습니다. 관계형 데이터베이스를 이용하는 프로젝트에서 객체지향 프로그램을 하기 위한 해결책으로 JPA라는 자바 표준 ORM(Object Relational Mapping)기술이 나왔습니다. ※ Mybatis, iBatis는 ORM이 아닙니다. SQL Mapper입니다. ORM은 객체를 매필하는 것이고, SQL Mapper는 쿼리를 매핑합니다. - JPA 소개 개발자는 객체지향적으로 프로그래밍을 하고, JPA가 이를 관계형 데이터베이스에 맞게 SQL을 대신 생성해서 실행합니다. 개발자는 항상 객체지향적으로 코드를 표현할 수 있으니..