분류 전체보기

    [SpringBoot-AWS] Chap06 - AWS 서버 환경을 만들어보자 - AWS EC2

    외부인이 내가 만든 서비스에 접근하려면 24시간 작동하는 서버 필요 호스팅 서비스나 클라우드 서비스를 이용하여 가능 특정 시간에만 트래픽이 몰린다면 유동적으로 사양을 늘릴 수 있는 클라우드 서비스가 유리 클라우드 인터넷(클라우드)을 통해 서버, 스토리지(파일 저장소), 데이터베이스, 네트워크, 소프트웨어, 모니터링 등의 컴퓨팅 서비스 제공 개발자가 직접 해야 할 일을 클라우드가 전부 지원 클라우드 형태 Infrastructure as a Service (IaaS, 아이아스, 이에스) 기존 물리 장비를 미들웨어와 함께 묶어둔 추상화 서비스 인프라 대여 서비스 AWS의 EC2, S3 등 Platform as a Service (PaaS, 파스) IaaS에서 한 번 더 추상화한 서비스 더 많은 기능이 자동화 ..

    [스프링 입문] Section6. 스프링 DB 접근 기술

    기존에는 메모리에 저장하는 방식 실무에서는 데이터베이스에 데이터들을 저장하여 관리 스프링이 JDBC template 기술 제공 애플리케이션에서 데이터베이스로 SQL을 편리하게 날릴 수 있음 JPA를 쓰면 객체를 바로 DB에 쿼리 없이 저장 가능 스프링 데이터 JPA : JPA를 편리하게 쓸 수 있도록 한 번 감싼 기능 H2 데이터베이스 설치 https://www.h2database.com/html/download-archive.html 에서 1.4.200 버전 설치 1. 데이터 베이스 파일 만들기 JDBC URL : 내 파일 경로 이후에 파일로 접근하면 애플리케이션과 웹 콘솔이 동시에 접근이 안될 수 있음 이후부터는 JDBC URL : jdbc:h2:tcp://localhost/~/test 파일 직접 접..

    [스프링 입문] Section5. 회원 관리 예제 - 웹 MVC 개발

    회원 웹 기능 - 홈 화면 추가 1. .../src/main/java/hello/hellospring/controller/HomeController.java 을 생성해서 홈 컨트롤러 추가 @Controller public class HomeController { @GetMapping("/") //도메인의 첫번째 public String home() { return "home"; //home.html이 호출 } } 2. .../src/main/resources/templates/home.html 을 생성해서 회원 관리용 홈 생성 Hello Spring 회원 기능 회원 가입 회원 목록 3. HelloSpringApplication.java 실행 시 localhost:8080 접속 시 홈 화면에 매핑된 htm..

    [스프링 이것저것] 의존성 주입 (DI) 개념 & 방법

    의존성 주입 의존성 주입 = Dependency Injection = DI 프로그램 디자인이 결합도를 느슨하게 되도록하고 의존관계 역전 원칙과 단일 책임 원칙을 따르도록 클라이언트의 생성에 대한 의존성을 클라이언트의 행위로 분리하는 것 by 위키피디아 의존 관계란? A가 B를 의존한다 = 의존대상 B가 변하면 그것이 A에 영향을 미친다 다양하게 의존 관계를 맺으려면 인터페이스로 추상화 해야 함 ⇒ 실제 구현 클래스와의 관계는 느슨해지고 결합도가 낮아짐 의존 관계 주입이란? 의존관계를 외부에서 결정하고 주입하는 것 클래스 변수를 결정하는 방법 = DI를 구현하는 방법 런타인 시점의 의존관계를 외부에서 주입하여 DI 구현 완성 DI 장점 의존성/종속성 ↓ : 변화가 있더라도 수정할 일이 적다 재사용성 ↑ :..

    [스프링 입문] Section4. 스프링 빈과 의존관계

    컴포넌트 스캔과 자동 의존 관계 설정 화면을 붙이려면 Controller와 View template이 필요 Member Controller가 Member Service를 통해 회원가입하고 조회할 수 있어야 함 ⇒ 의존 관계가 있다 표현 == 멤버 컨트롤러가 멤버 서비스를 의존한다 /src/main/java/hello/hellospring/controller/MemberController.java 생성 MemberService를 Spring Contaioner로부터 받아 쓰도록 ⇒ 새로 생성할 필요 X, 하나만 가져와서 같이 쓰는 것이 나음 결론 : 스프링 컨테이너에 하나만 등록하여 가져다 쓰기! @Controller public class MemberController { private final Mem..

    [스프링 입문] Section3. 회원 관리 예제 - 백엔드 개발

    비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않았다는 조건 일반적인 웹 애플리케이션 계층 구조 컨트롤러 : 웹 MVC의 컨트롤러 역할 서비스 : 핵심 비즈니스 로직 구현 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인 : 비즈니스 도메인 객체 클래스 의존관리 MemberRepository : 회원을 저장하는 곳, 인터페이스로 설계(아직 데이터 저장소가 선정되지 않아서) Memory MemberRepository : MemberRepository의 구현체, 단순 메모리로 넣다 뺐다 할 수 있게, 나중에 바꾸기 위해 인터페이스가 필요한 것 회원 도메인과 리포지토리 만들기 1. src/main/java/hello/h..

    [스프링 입문] Section2. 스프링 웹 개발 기초

    정적 컨텐츠 파일을 그대로 웹 브라우저에 전달 resources/static/hello-static.html 생성 정적 컨텐츠 입니다. 구동 방식 MVC와 템플릿 엔진 MVC : Model, View, Controller Model : 화면에 필요한 것만 담 View : 화면을 그리는 데에 집중 Controller : 비즈니스 로직 같은 내부적인 것에 집중 HelloController.java에 추가 @RequestParam : 외부에서 파라미터를 받을 것 @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model) { model.addAttribute("name", name); return "..

    [스프링 입문] Section1. 프로젝트 환경설정

    첫 단추를 잘 끼우자 ..! 프로젝트 생성 사전 준비물 : Java11, IDE(InteliJ) 설치 스프링 부트 스타터 → 스프링 프로젝트 생성 : Spring Initializr Maven, Gradle : 필요한 라이브러리를 가져오고 빌드하는 라이프 사이클까지 관리하는 툴, 요즘 추세는 Gradle Group : 기업 도메인명 Artifact : 프로젝트 Dependencies : 어떤 라이브러리를 가져와 쓸지 선택 Thymeleaf : html을 만들어주는 템플릿 엔진 3. Generate하여 IntelliJ에서 build.gradle 파일을 프로젝트로 open 더보기 Error 그 사이에.. Error가 남 ㅋㅋ A problem occurred configuring root project 어쩌..