Java & Spring
-
6장) AWS 서버 환경을 만들어보자 - AWS EC2Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 7. 7. 23:05
클라우드 호스팅 서비스나 집 PC를 이용하는 것이 일반적으로 비용이 저렴하지만, 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드가 유리 클라우드 서비스는 단순히 물리 장비만 대여하는 것이 아니라, 로그 관리, 모니터링, 하드웨어 교체, 네트워크 관리 등 지원해준다. 클라우드의 형태 Infrastructure as a Service(IaaS, 아이아스, 이에스) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 가상머신, 스토리지, 네트워크, 운영체제 등의 IT 인프라를 대여해주는 서비스 AWS의 EC2, S3 등 Platform as a Service (PaaS, 파스) IaaS에서 한번 더 추상화한 서비스 따라서, 많은 기능이 자동화 돼있음 AWS의 Beanstalk(빈스..
-
5장) 스프링 시큐리티와 OAuth2.0으로 로그인 기능 구현하기Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 7. 5. 23:08
스프링 시큐리티 막강한 인증과 인가 기능을 가진 프레임워크 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 보면 됨 스프링 시큐리티와 스프링 시큐리티 Oauth2 클라이언트 스프링 부트 1.5 vs 2.0 스프링 부트 1.5 더 이상 신규 기능은 추가 지원이 없다. (기존 기능은 유지) url 주소를 모두 명시해야함 스프링 부트 2.0 스프링 부트용 라이브러리(starter) 출시 신규 라이브러리의 경우 확장 포인트를 고려해서 설계된 상태 1.5버전에서 직접 입력하던 값들은 enum으로 대체되고, client 인증 정보만 입력하면 된다. CommonOAuth2Provide라는 enum이 새롭게 추가, 여기서 구글, 깃허브, 페이스북, 옥타 등의 기본 설정값 제공 (네이버나 카카오는 직접 해야함) ..
-
4장 ) 머스테치로 화면 구성하기Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 7. 1. 01:26
서버 템플릿 엔진과 머스테치 소개 템플릿 엔진 지정된 템플릿 양식과 데이터가 합쳐서 HTML 문서를 출력하는 소프트웨어 서버 템플릿 엔진 : JSP, Freemarker -> 서버에서 구동 ~> 브라우저로 전달 클라이언트 템플릿 엔진 : React, Vue -> 브라우저에서 화면 생성 JSP, Velocity : Spring-boot에서 권장 X Freemarker - 과한 기능, 자유도가 높아서 숙련도가 낮을 수록 사용하기 힘들다. Thymeleaf - Spring에서 강하게 밀고있지만, 문법이 어렵다. 머스테치 서버 템플릿엔진, 클라이언트 템플릿 엔진으로 모두 이용 가능 (다양한 언어 지원) 장점 문법이 간단하다. View의 역할과 서버의 역할이 명확하게 분리된다. Mustache.js와 Mustac..
-
3장) 스프링 부트에서 JPA로 데이터베이스 다뤄보자Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 6. 28. 17:17
웹 서비스 개발, 운영에서 이전에는 MyBatis와 같은 SQL 매퍼를 이용해서 DB 쿼리를 작성했었다. 문제점 1) SQL 다루는 시간 > 개발 시간 2) 객체지향 프로그래밍과 관계형 디비 간 상호 호환성 저하(테이블 모델링에 더 집중하는 현상) 발생 (패러다임 불일치) 객체지향 프로그래밍 : 메세지를 기반으로 기능과 속성을 한 곳에서 관리 관계형 데이터베이스 : 어떻게 데이터를 저장할지 초점 ~> JAP가 이 문제를 해결 JPA 자바 표준 ORM(Objecet Relational Mapping) OOP 언어와 RDB 중간에서 패러다임을 일치시켜주는 기술 Spring Data JPA JPA는 인터페이스로서 자바 표준명세서 따라서, 사용하기 위해서는 구현체가 필요(Hibernate, Eclipse Lin..
-
2장) 스프링 부트에서 테스트 코드를 작성하자Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 6. 27. 01:24
테스트 코드 소개 TDD vs 단위 테스트 TDD - 테스트가 주도하는 개발 (테스트 코드를 먼저 작성하는 것부터 시작) 레드 그린 사이클 항상 실패하는 테스트를 먼저 작성하고(Red) 테스트가 통과하는 프로덕션 코드를 작성하고(Green) 테스트가 통과하면 프로덕션 코드를 리팩토링함(Refactor) 단위 테스트 - TDD의 첫 번째 단계인 기능 단위의 테스트 코드를 작성하는 것 따라서, 테스트 코드를 먼저 작성하지 않아도, 리팩토링을 포함하지 않아도 됨 개발 단계 초기에 문제를 발견하게 도와준다. 리팩토링을 하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인할 수 있음 기능에 대한 불확실성을 감소 시스템에 대한 실제 문서를 제공 단위 테스트 장점 빠른 피드백 자동검증이 가능 개발..
-
1장) IntelliJ로 스프링부트 시작하기Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 6. 26. 00:04
인텔리제이 설치 원래 IntelliJ를 사용하고 있었으므로, 따로 정리하지 않음 프로젝트 생성 프로젝트 생성 -> Gradle 선택 (Gradle 프로젝트 생성) GroupID와 ArtifactId를 등록한다. ArtifactId는 프로젝트의 이름이 되기 때문에, 원하는 이름을 작성한다. 설정값은 기본 값으로 둔다. 디렉토리 위치 또한, 원하는 경로를 설정한다. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기 gradle 파일을 연다. plugins { id 'java' } group 'com.zin0.book' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } d..
-
정리에 앞서...Java & Spring/스프링 부트와 AWS로 혼자 구현하는 웹 서비스 2020. 6. 25. 23:59
잘하지는 않지만, 프로그래밍 언어는 자바를 주로 사용하고, 백엔드 개발자 포지션에 지원하면서 스프링에 대한 경험이 없다는게 많이 민망하고 후회됐다. 그래서, 상반기 공채가 끝난 김에 이 시간을 spring-boot를 공부하자는 계획을 세웠다. ( 상반기 시작부터 계획을 세웠지만, 이제야 실행한다.. ㅠㅠ ) 함께 취준하는 친구와 얘기하다가 '스프링 부트와 AWS로 혼자 구현하는 웹서비스' 라는 책을 알게되었다. 이 책의 저자는 이동욱씨이며, 기억보단 기록을 이라는 블로그를 운영하시는 배민의 백엔드 개발자시다. 평소에 멋있다고 생각한 분의 책임을 확인하고 바로 질러버렸다. 이상하게 IT 기술에 관련해서는 책으로 공부하는 습관이 들지 않았는데, 이번 기회에 JS 기본이랑 spring-boot는 책으로 공부해..