Group Study (2023-2024)/Spring 입문 7

[스프링 입문] 5주차 chap 07 - AWS에 데이터 베이스 환경을 만들어보자(AWS RDS)

Chap 07_AWS에 데이터 베이스 환경을 만들어보자(AWS RDS) 웹 서비스의 백엔드를 다룬다고 했을 때 애플리케이션 코드를 작성하는 것 만큼 중요한 것이 데이터베이스를 다루는 것이다. 규모가 있는 회사의 경우 데이터베이스를 전문적으로 처리하는 직군 담당자들이 존재하지만 스타트업이나 개발 인원수가 적은 서비스에서는 개발자가 데이터베이스를 다뤄야만 하므로 백엔드 개발자는 데이터베이스를 다룰 줄 알야야 한다. AWS에서 제공하는 관리형 서비스인 RDS를 이용하여 데이터베이스를 구축하고 앞 장에서 만든 EC2 서버와 연동해볼 수 있다. RDS란? AWS에서 지원하는 클라우드 기반 관계형 데이터베이스 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같이 잦은 운영 작업을 자동화하여 개발자가 개발에..

[스프링 입문] 5주차 chap 06 - AWS 서버 환경을 만들어보자 - AWS EC2

chap06 - AWS 서버 환경을 만들어보자 - AWS EC2 외부에서 본인이 만든 서비스에 접근하려면 24시간 작동하는 서버가 필수 24시간동안 작동하는 서버에는 3가지 선택지가 있다. 집에 PC를 24시간동안 구동시킨다. 호스팅 서비스(Cafe24, 코리아호스팅 등)을 이용한다. 클라우드 서비스(AWS, AZURE, GCP 등)을 이용한다. 일반적인 비용은 호스팅 서비스나 집 PC를 이용하는 것이 저렴하지만 특정시간에만 사용량이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드가 유리 클라우드 : 클라우드 서비스는 인터넷(클라우드)를 통해 서버, 스토리지(파일 저장소), 데이터베이스, 네트워크 ,소프트웨어, 모니터링 등의 컴퓨팅 서비스를 제공하는 것이다. 클라우드 형태 Infrastructure a..

[스프링 입문] 4주차 chap 05 - 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기

chap05 - 스프링 시큐리티와 OAuth 2.0으로 로그인 기능 구현하기 스프링 시큐리티는 막강한 인증과 인가 기능을 가진 프레임 워크이다. 스프링 기반의 애플리케이션에서는 보안을 위한 표준이라고 생각하면 된다. 인터셉터, 필터 기반의 보안 기능을 구현하는 것보다 스프링 시큐리티를 통해 구현하는 것을 적극적으로 권장하고 있다. 5.1 스프링 시큐리티와 스프링 시큐리티 OAuth2 클라이언트 먼저 OAuth란 무엇인지에 대해서 찾아봤다. OAuth (Open Authorization) 은 인터넷 사용자들이 비밀번호를 제공하지 않고, 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 개방형 표준을 의미한다. OAuth..

[스프링 입문] 3주차 chap 04 - 머스테치로 화면 구성하기

4.1 서버 템플릿 엔진과 머스테치 소개 - 템플릿 엔진 : 지정된 템플릿 양식과 데이터가 합쳐져 HTML 문서를 출력하는 소프트웨어 (== 웹의 화면을 어떤 형태로 만들지 도와주는 양식) JSP, Freemarker : 서버 템플릿 엔진, 서버에서 구동 리액트, 뷰의 View 파일 : 클라이언트 템플릿 엔진, 서버에서 Java 코드로 문자열을 만든 뒤, 이 문자열을 HTML 로 변환하여 브라우저로 전달 즉 서버 브라우저에서 작동될 때는 서버 템플릿 엔진의 손을 벗어나 제어할 수가 없습니다. 뷰나 리액트를 이용한 SPA는 브라우저에서 화면을 생성합니다. 즉 서버에서 이미 코드가 벗어난 경우라 서버에서는 Json, Xml 형식의 데이터만 전달하고 클라이언트에서 조립하는 것입니다. - 머스테치 : 수많은 언..

[Spring 입문] 1주차 chap 03 - 스프링 부트에서 JPA로 데이터베이스 다뤄보자

CHAPTER 03 스프링 부트에서 JPA로 데이터베이스 다뤄보자 들어가면서... 기존의 Java 개발자분들과 이 책의 저자는 다음과 같은 고민을 하게 된다. '어떻게 하면 관계형 데이터베이스를 이용하는 프로젝트에서 객체지향 프로그래밍을 할 수 있을까?' 그 문제의 해결책으로 JPA라는 자바 표준 ORM 기술을 제시한다. 기존 프로젝트 환경을 개편하는 사람들은 대부분 JPA를 선택한다. * ORM이란? 메타데이터 설명자를 사용하여 객체 코드를 관계형 데이터베이스에 연결하는 프로그래밍 기술을 말한다. https://velog.io/@rhee519/Object-Relational-Mapping Object-Relational Mapping(객체 관계형 매핑, ORM) Object-Relational Mapp..

[스프링 입문] 1주차 chap 01 - 인텔리제이로 스프링 부트 시작하기

간단 실습 정리 1. 인텔리제이 설치 2. 인텔리제이 커뮤니티를 통한 프로젝트 생성 3. 그레이들 프로젝트를 스프링 부트 프로젝트로 변경 - build.gradle 파일에서 해당 프로젝트의 플러그인 의존성 관리를 위한 설정 할 수 있다 buildscript { ext { // 전역 변수 설정 springBootVersion = '2.1.7.RELEASE' } repositories { mavenCentral() jcenter() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } //선언한 플러그인 의존성 적용 apply plugin: 'java' apply plugi..

[스프링 입문] 1주차 Chap 02 - 스프링 부트에서 테스트 코드를 작성하자

대부분의 서비스 회사가 테스트 코드에 관해 요구함, 절대 빠질 수 없는 테스트 코드 2.1 테스트 코드 소개 TDD : 테스트가 주도하는 개발 단위 테스트 : 기능 단위의 테스트 코드를 작성하는 것, TDD와 달리 테스트 코드를 꼭 먼저 작성 X, 순수하게 테스트 코드만 작성 이번 장에서 배우는 것 -> 단위 테스트 코드 단위 테스트 코드를 작성함으로써 얻는 이점 개발단계 초기에 문제를 발견하게 도와줌 개발자가 나중에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인 가능 기능에 대한 불확실성 감소 시스템에 대한 실제 문서 제공 필자의 경험담 빠른 피드백 자동검증 개발자가 만든 기능을 안전하게 보호해줌 테스트 코드 작성은 100% 익혀야 할 기술이자 습관이다 !! 테..