본문 바로가기

전체 글

(121)
스프링부트 2강 - 스프링부트 만들기 I 스프링부트 2강스프링부트 2강 - 스프링부트 만들기 I 이번 시간에는 스프링 이니셜라이즈 사이트에서 프로젝트를 다운로드받아서 STS에서 불러와서 코드를 작성하는 과정을 설명할 것이다. 기회가 된다면 인텔리제이를 한 번 써보자. 프로젝트 구성 프로젝트 구성을 해보자. 스프링 이니셜라이저 사이트에서 다운로드 받게 된다. Spring Initializer::스프링 부트 시작점이다. 사실 우리가 위 사이트에 가서 내려받을 일은 없다. Spring initalizer:: Make spring-boot.zip https://start.spring.io/starter.zip/ ?name=spring-boot/ &groupId=io.honeymon.tacademy/ &artifactId=spring-boot/ &ver..
빌드란? 빌드란? 소스코드 파일을 실행가능한 소프트웨어 산출물로 만드는 일련의 과정을 말한다. 빌드의 단계 중 컴파일이 포함이 되어 있는데 컴파일은 빌드의 부분집합이라 할 수 있다. 보통 JSP/Servlet 기반의 App을 빌드하게 되면 아래와 같은 과정을 거친다. 내가 만든 소스코드를 helloWorld.war로 압축한다. helloWorld.war을 tomcat이 깔려있는 원격서버에 올린다. 이걸 ant(Maven등의 빌드도구)로 작성을 하면 "Export - next - next - tomcat접속 - admin접속 - war flie 선택 - deploy 클릭' 등 이러한 과정을 마우스 클릭 한 번으로 해결할 수 있다는 것이다.
이클립스 그레이들 플러그인 설치 이클립스 그레이들 플러그인 설치
스프링부트 1강 - 스프링부트 소개 스프링부트 1강 - 스프링부트 소개 목차 스프링 부트 소개 스프링 부트 프로젝트 만들기 스프링 부트 웹 서비스 개발 스프링 부트 소개 스프링 부트가 나온 것은 2014년 4월 1일이다. 스프링부트는 기존에 스프링 프레임워크와 같이 톰캣과 같은 WAS가 설치된 곳에 WAR를 배포하는 게 아니라 자기 자신 자체를 배포하고 실행할 수 있는 그런 아키텍처를 가진다. 스프링부트 2.0은 2018년 3월 1일에 나왔다. 스프링부트 기능정의 단독실행 가능한 스프링 애플리케이션 생성 내장 컨테이너로 톰캣, 제티 혹은 언더토우 중에서 선택가능 스타터를 통해 간결한 의존성 구성 지원 스프링에 대한 자동구성(Auto-Configuration) 제공 더이상 XML구성 필요없음 제품출시 후 운영에 필요한 다양한 기능(상태점검,..
REST API란? REST API란? REST API는 정보들이 주고 받아지는 데 있어서 개발자들 사이에 널리 쓰이는 일종의 형식이다. 예를 들면 우체국 택배송장처럼 택배를 보내기 위해 이용자들은 송장을 채워넣어야 한다. 어떤 기술이나 제품이 아니라 형식이기 때문에 어떤 프로그래밍 언어를 사용하던, 무슨 프레임워크를 사용하던 이 형식에 맞춰서 기능을 만들어 내기만 하면 된다. API란? 어떤 기계를 만들면 사용자가 그 기능들을 제대로 활용할 수 있도록 제어장치를 만들어야 한다. 예를 들어 TV는 사용자가 TV를 켜거나 끌 수 있도록 리코컨이 존재한다. 이런 것들을 인터페이스라고 한다. 기계와 인간의 소통창구이다. 소프트웨어적으로 설명하자면 컴퓨터나 스마트폰을 켜면 사용자들이 프로그램이나 사이트, 앱을 원하는 대로 제어하고..
JPA 8강 - Spring Data JPA와 QueryDSL 이해 JPA 8강 - Spring Data JPA와 QueryDSL 이해 JPA 기반 프로젝트 Spring Data JPA QueryDSL JPA와 스프링과 어떻게 얼개가 맞춰지는지를 알아보자. 보통 인터넷에 떠도는 예제를 통해 JPA를 배우면 영속성 컨텍스트, 매핑이론들에 대해서 못 배운다. 그런데 소스는 짧다. 그러면 드는 생각이 Spring JPA를 쓰면 다되나보다 생각을 한다. 그러고 현업에 들어가면 망한다. 매핑이 안된다던지, null값이 들어온다던지 하는 문제가 생길 것이다. Spring Data JPA 반복되는 CRUD public class MemberRepository { public void save (Member member) { ... } public Member findOne(Long ..
JPA 7강 - JPA 객체지향쿼리 JPA 7강 - JPA 객체지향쿼리 JPA는 다양한 쿼리 방법을 지원 JPQL JPA Criteria QueryDSL 네이티브 SQL JDBC API 직접 사용, MyBatis, StringJdbcTemplate 함께 사용 지금까지는 조회시 식별자를 이용해 하나만 조회했다. 예를 들어 15살 이상인 회원을 조회해야 한다면 식별자(ID)로 어떻게 하나하나 조회를 할 수 있을까? 결국 쿼리라는 개념이 필요하다. 그래서 JPA에서 쿼리를 지원하는게 JPQL이다. JPQL 소개 가장 단순한 조회 방법 EntityManager.find() 객체 그래프 탐색(a.getB().getC()) 나이가 18살 이상인 회원을 모두 검색하고 싶다면? SQL과 똑같다. 단, 객체를 대상으로 조회한다는 차이점이 있다. JPQL ..
JPA 6강 - JPA 내부구조 JPA 6강 - JPA 내부구조 - 영속성 컨텍스트 - 프록시와 즉시로딩, 지연로딩 JPA에서 가장 중요한 2가지 객체와 관계형 데이터베이스 매핑하기(Object Relation Mapping) 영속성 컨텍스트 영속성 컨텍스트를 알고 있으면 트러블슈팅을 제대로 할 수 있다. 엔티티 매니저 팩토리와 엔티티 매니저 JPA는 EntityManagerFactory에서 유저의 요청이 올 때마다 EntityManager를 별도로 생성한다. EntityManager는 내부적으로 데이터베이스 커넥션 풀에서 커넥션을 가져와 DB에 액세스 작업을 한다. 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경"이라는 뜻 EntityManager.pesist(entity); 엔티티 매니저? 영속성..