일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링부트 웹 소켓
- 프로그래밍언어론
- 스프링부트
- libasm
- 오라클
- 아이패드다이어리
- MySQL
- swift
- 인공지능
- 데이터베이스
- DBMS
- IOS
- 42seoul
- 네트워크
- 소켓
- javascript
- CD
- 리눅스
- 밥먹는 철학자
- AI
- Xcode
- 스프링
- CI
- Dining philosopher problem
- 다이어리
- Spring
- springboot
- sql
- JPA
- jenkins
- Today
- Total
목록Framework & Library (24)
Hi yoahn 개발블로그
1. H2 데이터베이스 설치 https://www.h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, source code is included Written in Java, but also available as native executable JDBC and (partial) ODBC API Embedded and client/server mo www.h2database.com download 후 터미널로 들어가서 cd h2/bin/ chmod 755 h2.sh /..
1. 회원 웹 기능 - 홈 화면 추가 HomeController.java @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } home.html Hello Spring 회원 기능 회원 가입 회원 목록 - 요청이 오면 관련 컨트롤러 먼저 찾고, 없으면 static 파일 탐색 - 루트 URL에 대해 컨트롤러가 존재하면 해당 컨트롤러 호출하여 홈 화면을 보여주고, 컨트롤러가 없으면 Welcome page(static/index.html) 보여줌 2. 회원 웹 기능 - 등록 hello/hellospring/controller/MemberController.java @Controller ..
1. 컴포넌트 스캔과 자동 의존관계 설정 @Controller public class MemberController { private final MemberService memberService = new MemberService(); } spring을 실행시키면 스프링 컨테이너가 생성됨 -> @Controller가 있으면 해당 클래스 객체를 생성해서 스프링에 넣어둠 -> 스프링이 관리 (== 스프링 빈이 관리된다) *** 스프링이 관리하게 되면 다 스프링 컨테이너에 등록하고 스프링 컨테이너한테 받아서 쓰도록 해야한다 - 다른 여러 컨트롤러들이 객체를 new로 생성하면 여러개의 인스턴스가 생성됨 - 스프링 컨테이너에 등록하게 되면 딱 하나만 등록되어 공용으로 사용 가능 @Controller public ..
1. 비즈니스 요구사항 정리 데이터: 회원ID, 이름 기능: 회원 등록, 조회 아직 데이터 저장소가 선정되지 않음(가상의 시나리오) 컨트롤러: 웹 MVC의 컨트롤러 역할 서비스: 핵심 비즈니스 로직 구현 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨 아직 데이터 저장소가 선정되지 않아서, 우선 인터페이스로 구현 클래스를 변경할 수 있도록 설계 데이터 저장소는 RDB, NoSQL 등등 다양한 저장소를 고민중인 상황으로 가정 개발을 진행하기 위해서 초기 개발 단계에서는 구현체로 가벼운 메모리 기반의 데이터 저장소 사용 2. 회원 도메인과 레포지토리 만들기 Member.java packag..
1. 정적 컨텐츠 - 파일을 웹브라우저에 그냥 그대로 전달 - 스프링 부트 -> 정적 컨텐츠 기능 자동으로 제공 docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of cl..
1. 프로젝트 생성하기 start.spring.io - spring boot 기반으로 스프링 관련 프로젝트 만들어주는 사이트 Project - Maven - Gradle (요즘 많이 사용) 필요한 라이브러리 가져오고, 빌드하는 라이프사이클까지 관리해주는 툴 version Snapshot, M1 버전은 아직 만들고있거나, 정식 출시 안된 버전 Artifact - 빌드되면 나오는 결과물 이름 Dependencies - 어떤 라이브러리를 가져와서 쓸 것인가 - Spring Web, Thymeleaf (Template engines) 다 선택 후 Generate, 다운 받은 파일 압축 풀어서 intellij에서 open으로 열기 2. 프로젝트 구조 > gradle > src > main > java /..
4.1 템플릿 엔진 JSP와 같이 HTML을 만들어주는 템플릿 엔진 command+shift+a -> plugins => mustache 검색 -> 플러그인 설치 4.2 기본 페이지 만들기 build.gradle compile('org.springframework.boot:spring-boot-starter-mustache') 의존성 추가 머스테치의 파일 위치 src/main/resources/templates index.html 스프링 부트로 시작하는 웹서비스 이 머스테치에 URL 매핑하기 -> Controller에서 진행 web/IndexController.java 생성 import org.springframework.stereotype.Controller; import org.springframew..
3.1 JPA 자바 표준 ORM(Object Relational Mapping) 기술 JPA는 인터페이스로서 자바 표준명세서이다. 인터페이스인 JPA를 사용하기 위해서는 구현체가 필요(Hibernate, Eclipse Link 등) 하지만 Spring 에서 JPA를 사용할 때는 구현체들을 직접 다루지는 않음 Spring Data JPA 구현체들을 좀 더 쉽게 사용하기 위해 추상화시킨 Spring Data JPA라는 모듈을 이용하여 JPA 기술을 다룬다 JPA 객체지향 프로그래밍을 쉽게 가능 3. 성능 이슈 해결책 존재 -> 네이티브 만큼의 퍼포먼스 가능 3.2 프로젝트에 Spring Data JPA 적용하기 p.86 dependencies { compile('org.springframework.boot:..
TDD (Test Driven Development) 테스트가 주도하는 개발 테스트 코드를 먼저 작성하는 것부터 시작 - 항상 실패하는 테스트를 먼저 작성하고 Red - 테스트가 통과하는 프로덕션 코드를 작성하고 Green - 테스트가 통과하면 프로덕션 코드를 리팩토링 Refactor 단위 테스트 TDD의 첫번째 단계인 기능 단위의 테스트 코드를 작성하는 것 TDD와 달리 테스트 코드를 꼭 먼저 작성하지 않아도 되고, 리팩토링도 포함되지 않는다 테스트코드를 작성하는 이유 1. 테스트 코드를 작성하면 수정된 기능을 확인하기 위해 프로그램을 매번 재시작하지 않아도 된다 2. 작성된 단위 테스트를 실행만 하면 수동검증은 필요없게 된다. (System.out.println 으로 매번 눈으로 확인하는 문제가 없어..
1. spring boot에 필요한 설정 추가하기 build.gradle //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 plugin: 'eclipse' apply plugin: 'org.spring..