🛠️Backend/Spring21 [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 09 스프링 시큐리티 (Spring Security) 막강한 인증(Authentication)과 인가(Authorization) 기능을 가진 Framework이다. 스프링 기반의 애플리케이션에서 보안을 위한 표준이다. 인터셉터, 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권장한다. 스프링의 대부분 프로젝트들(Mvc, Data, Batch 등)처럼 확장성을 고려한 프레임워크다 보니 다양한 요구사항을 손쉽게 추가하고 변경할 수 있다. 이런 손쉬운 설정은 특히나 스프링 부트 1.5에서 2.0으로 넘어가면서 더욱 강력해졌다. 스프링 시큐리티와 스프링 시큐리티 OAuth2 클라이언트 많은 서비스에서 로그인 기능을 id/password 방식보다는 구글, 카카오, 네이버 로그.. 🛠️Backend/Spring 2023. 1. 18. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 08 전체 조회 화면 만들기 1. index.mustache UI 변경 우선 index.mustache 파일의 코드에 아래와 같이 추가해준다. {{>layout/header}} 스프링 부트로 시작하는 웹 서비스 Ver.2 글 등록 게시글번호 제목 작성자 최종수정일 {{#posts}} {{id}} {{title}} {{author}} {{modifiedDate}} {{/posts}} {{>layout/footer}} 추가된 부분에서 Mustache의 문법이 처음으로 사용된다. {{#posts}} {{/posts}} posts라는 List를 가져온다 Java의 for문과 동일하게 생각하면 된다. {{변수명}} List에서 뽑아낸 객체의 필드를 사용한다. 2. PostsRepository, PostsService,.. 🛠️Backend/Spring 2023. 1. 8. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 07 Mustache로 화면 구성하기 템플릿 엔진이란? 웹 개발에 있어서 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어를 말한다. JSP, Freemarker, Vue, React 등이 있다. 다만 JSP와 Freemarker는 서버 템플릿 엔진이라 불리고 Vue와 React는 클라이언트 템플렛 엔진이라 불린다. Q) JavaScript에서 JSP나 Freemarker처럼 Java 코드를 사용할 수는 없을까? 예시 코드 코드를 보면 css와 js의 위치가 서로 다르다. 페이지의 로딩속도를 높이기위해 css는 header.mustache에, js는 footer.mustache에 위치했다. HTML은 위에서부터 코드가 실행되기 때문에 head가 전부 실행되고나서 body가 실행된다. 즉.. 🛠️Backend/Spring 2023. 1. 2. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 06 Spring의 웹 계층 Web Layer 흔히 사용하는 Controller와 JSP/Freamwork 등의 뷰 템플릿 영역이다. 이외에도 Filter, Interceptor, ControllerAdvice 등 외부 요청과 응답에 대한 전반적인 영역을 이야기한다. Service Layer @Service에 사용되는 서비스 영역이다. 일반적으로 Controller와 DAO의 중간 영역에서 사용된다. @Transactional이 사용되어야 하는 영역이기도 하다. Repository Layer Database와 같이 저장소에 접근하는 영역이다. 기존에 개발 경험이 있다면 DAO(Data Access Object)와 같은 영역이라고 생각하면 된다. DTOs DTO(Data Transfer Object)는 계층 간.. 🛠️Backend/Spring 2022. 12. 1. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 05 MyBatis, iBatis는 ORM이 아니고 SQL Mapper이다. ORM은 객체를 매핑하는 것이고,SQL Mapper는 쿼리를 매핑한다. 현대의 웹 애플리케이션에서 관계형 데이터베이스(RDB, Relational Database)는 빠질 수 없는 요소이다. Oracle, MySQL, MSSQL 등을 쓰지 않는 웹 애플리케이션은 거의 없다. 객체를 관계형 데이터 베이스에서 관리하는 것이 무엇보다 중요하다. 관계형 데이터베이스가 계속해서 웹 서비스의 중심이 되면서 모든 코드는 SQL중심이 되어간다. 현업 프로젝트 대부분이 애플리케이션 코드보다 SQL로 가득하게 됐다. 이는 관계형 데이터베이스가 SQL만 인식할 수 있기 때문인데, SQL로만 가능하니 각 테이블마다 기본적인 CRUD(Create, Read.. 🛠️Backend/Spring 2022. 11. 15. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 04 롬복 소개 및 설치 롬복이란? 자바를 개발할 때 주로 사용하는 코드 Getter, Setter, 기본 생성자, toString 등을 어노테이션으로 자동 생성해준다. 롬복 설치 롬복 의존성 코드 작성 및 설치 우선 위의 화면처럼 build.gradle파일의 dependencies부분에 아래에 코드를 추가해준다. dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.projectlombok:lombok') testImplementation('org.springframework.boot:spring-boot-starter-test') } 교재에는 plugins에서 롬복을 따로 설치해주라고 하지만 Intell.. 🛠️Backend/Spring 2022. 11. 11. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 03 테스트 코드 TDD (Test Driven Development,테스트 주도 개발)와 단위 테스트 (Unit Test)는 다른 개념이다. TDD란? TDD는 테스트가 주도하는 개발을 뜻하고 테스트 코드를 먼저 작성하는 것부터 시작된다. 레드 그린 사이클 항상 실패하는 테스트를 먼저 작성한다. (Red) 테스트가 통과하는 프로덕션 코드를 작성한다. (Green) 테스트가 통과하면 프로덕션 코드를 리팩토링한다. (Refactor) 단위 테스트란? TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것을 뜻한다. TDD와 달리 테스트 코드를 꼭 먼저 작성해야 하는 것도 아니고, 리팩토링도 포함되지 않는다. 순수하게 테스트 코드만을 작성하는 것을 뜻한다. 단위 테스트 코드 작성시 이점 개발단계 초기에 .. 🛠️Backend/Spring 2022. 11. 8. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 02 Git 이란? Git은 형상 관리 도구중 하나로,컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. Git은 프로젝트 폴더 내에서 작업을 기록하고,버전 관리를 통해 체계적인 개발이 가능하도록 한다. Git의 장점 소스 코드를 따로 주고 받을 필요 없이, Git을 사용하면 하나의 프로젝트, 파일을 여러 사람과 동시에 작업하여 개발이 가능하다. 출처 : 위키백과 Git Hub란? 깃 허브(Git Hub)는분산 버전 관리 툴인 깃(Git)을 사용하는 프로젝트를 지원하는 웹 호스팅 서비스이다. 출처 : 위키백과 * Git Hub 회원가입이 되어있다는 전재하에 작성되었습니다. * Git Hub 회원이 아니시면 아래 사이트로 접속해 회원가입을 .. 🛠️Backend/Spring 2022. 10. 25. [Spring Boot] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 01 교재 인텔리제이 프로젝트 생성 *젯브레인 툴박스 및 인텔리제이 설치 후에 인텔리제이 실행시 새 프로젝트 생성 버튼을 클릭시 나오는 화면이다. 우선 이름란에 프로젝트명을 입력하고 자신이 원하는 경로로 프로젝트 파일의 위치 설정이 가능하다. Spring Boot 교재를 따라 언어는 Java로 시스템 빌드는 Gradle로 선택하여 생성했다. *JDK는 교재를 따라 1.8버전으로 설치했고 다운받은 버전을 선택하면 JDK 파일이 목록에 알아서 생성된다. Gradle DSL은 Groovy를 사용하여 실습을 진행했다. 그리고 마지막으로 생성버튼을 누르면 프로젝트 생성이 완료된다. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기 프로젝트 생성을 완료하면 위와 같은 화면이 나온다. 화면이 안나온다면 왼쪽 메뉴에 있는.. 🛠️Backend/Spring 2022. 10. 23. 이전 1 2 다음