spring.io 레퍼런스(sagan project)를 통해서 배우는 spring 개발사례에 대해서 발표하고 정리한 프레젠테이션입니다. 작년에 SpringOne에서 발표된 inside spring.io 내용과 저의 개인적인 분석을 통해서 내용을 정리했습니다.
'입문자' 분들을 대상으로 정리했기 때문에 가능한한 간결하고 직관적으로 내용들을 표현했으며 깊게 들어가는 내용들은 거의 생략을 하였습니다.
자세한 내용들을 원하시면 프레젠테이션 중간중간에 관련 link를 첨부하였으니 같이 보시면은 도움이 되실것 같습니다.
스프링군살없이세팅하기(The way to setting the Spring framework for web.)EunChul Shin
깔끔하게 스프링 프레임워크 세팅하는 것에 대한 이야기 입니다.
군살없이 프레임워크를 세팅한다는 의미와 이유, 그리고 스프링 기본 설정 및 설정들의 역할에 대해서 정리해 보았습니다.
This presentation is about Spring framework.
I want to talk about the way to setting the spring framework as tidy in this presentation.
제 14회 한국 자바 개발자 컨퍼런스의 커뮤니티 세션에서 공유한 `overview of spring4` 의 발표 자료
스프링 프레임워크는 2004년에 출시된 이후 지금까지 많은 변화를 겪어왔습니다. 기억에 남아 있는 굴직한 변화를 더듬어 보면 버전 2.0은 XML 네임스페이스와 AspectJ 지원, 버전 2.5부터 애노테이션을 활용한 프로그래밍 기능이 추가되었습니다. 그리고 버전 3.0으로 올라가며 Java 5+ 기반으로 코드 구조가 바뀌고 자바 코드 기반 설정 기능이 추가되었습니다. 2013년 12월 13일에 버전 4.0 발표이 발표되었습니다. 주목할 변화는 바로 Java 8 지원과 제거 대상(@Deprecated)으로 선언되었던 많은 클래스와 메소드들이 삭제되었다는 것입니다. 이 외에도 많은 변화가 있습니다. 이번 시간에는 조금 높은 곳에서 내려다보는 느낌으로 무엇이 추가되었고, 어떤게 바뀌었는지 살펴보려고 합니다.
예제코드 : https://github.com/arawn/overview-of-spring4
UNIST 프로그래밍 동아리 HeXA (http://www.hexa.pro) 내부 React 강의 프레젠테이션 자료의 공개버전
내용
- HTML, Javascript 속성 튜토리얼
- React 소개
- Node.js 설치
https://github.com/kimxogus/react-tutorial
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
20번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)에서 제공하는 자료입니다. 스프링프레임워크 & 마이바티스(Spring Framework, MyBatis) 9번째 자료입니다. AOP 충고(Advice),프로그래밍적인 방법을 통한 AOP 구현(ProxyFactory 이용)에 대하여 설명한 자료이므로 참고하시면 좋을 것 같습니다^^.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
17번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
15번째 스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)자료입니다.
Spring JDBC에서 DB 접근하는 방법, Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate, Maven, Gradle에서 오라클 설정에 대해 설명한 자료이니 많은 참고 바랍니다.
자바개발시 모델객체를 생성할 때 setter/getter/toString/hashCode/equals 메소드를 만드는데 이럴 경우 클래스 파일의 소스가 길어지고 복잡해지는데, 이를 해결하기 위해 롬복(Lombok)을 사용하죠, 자바개발 하시는 분이라면 알아두시면 유용하리라 생각 됩니다.
슬라이드 원본
http://hatemogi.github.com/netty-startup/2.html
프로젝트 소스
https://github.com/hatemogi/netty-startup/
Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.
제 14회 한국 자바 개발자 컨퍼런스의 커뮤니티 세션에서 공유한 `overview of spring4` 의 발표 자료
스프링 프레임워크는 2004년에 출시된 이후 지금까지 많은 변화를 겪어왔습니다. 기억에 남아 있는 굴직한 변화를 더듬어 보면 버전 2.0은 XML 네임스페이스와 AspectJ 지원, 버전 2.5부터 애노테이션을 활용한 프로그래밍 기능이 추가되었습니다. 그리고 버전 3.0으로 올라가며 Java 5+ 기반으로 코드 구조가 바뀌고 자바 코드 기반 설정 기능이 추가되었습니다. 2013년 12월 13일에 버전 4.0 발표이 발표되었습니다. 주목할 변화는 바로 Java 8 지원과 제거 대상(@Deprecated)으로 선언되었던 많은 클래스와 메소드들이 삭제되었다는 것입니다. 이 외에도 많은 변화가 있습니다. 이번 시간에는 조금 높은 곳에서 내려다보는 느낌으로 무엇이 추가되었고, 어떤게 바뀌었는지 살펴보려고 합니다.
예제코드 : https://github.com/arawn/overview-of-spring4
UNIST 프로그래밍 동아리 HeXA (http://www.hexa.pro) 내부 React 강의 프레젠테이션 자료의 공개버전
내용
- HTML, Javascript 속성 튜토리얼
- React 소개
- Node.js 설치
https://github.com/kimxogus/react-tutorial
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
20번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)에서 제공하는 자료입니다. 스프링프레임워크 & 마이바티스(Spring Framework, MyBatis) 9번째 자료입니다. AOP 충고(Advice),프로그래밍적인 방법을 통한 AOP 구현(ProxyFactory 이용)에 대하여 설명한 자료이므로 참고하시면 좋을 것 같습니다^^.
탑크리에듀교육센터(www.topcredu.co.kr)제공
스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)
17번째 자료입니다. 참고하시어 많은 도움되셨길 바랍니다.
교육 및 수강문의/기타문의사항은 홈페이지(www.topcredu.co.kr)를 통하여 하실 수 있습니다.^^
탑크리에듀교육센터(www.topcredu.co.kr)제공
15번째 스프링프레임워크 & 마이바티스(Spring Framework, MyBatis)자료입니다.
Spring JDBC에서 DB 접근하는 방법, Spring JDBC에서 DB 접근하는 방법 – jdbcTemplate, Maven, Gradle에서 오라클 설정에 대해 설명한 자료이니 많은 참고 바랍니다.
자바개발시 모델객체를 생성할 때 setter/getter/toString/hashCode/equals 메소드를 만드는데 이럴 경우 클래스 파일의 소스가 길어지고 복잡해지는데, 이를 해결하기 위해 롬복(Lombok)을 사용하죠, 자바개발 하시는 분이라면 알아두시면 유용하리라 생각 됩니다.
슬라이드 원본
http://hatemogi.github.com/netty-startup/2.html
프로젝트 소스
https://github.com/hatemogi/netty-startup/
Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.
Scala, Spring-Boot, JPA를 활용한 웹 애플리케이션 개발 과정에 대해 다룬다. Spring-Boot와 JPA 조합만으로도 생산성 있는 웹 애플리케이션 개발이 가능하다. 이 조합만으로도 충분히 의미가 있지만 여기에 Scala라는 약간은 불편한 듯 보이는 언어를 도입함으로써 얻을 수 있는 즐거움을 공유한다. Spring-Boot + JPA 조합에 Scala를 적용하면서의 좌충우돌 경험담을 전한다.
슬라이드 원본
http://hatemogi.github.com/netty-startup/
프로젝트 소스
https://github.com/hatemogi/netty-startup/
Netty는 JAVA환경에서 고성능 네트워크 서버를 개발할 수 있는 매우 유용한 프레임워크입니다만, 비동기(asynchronous) 이벤트 기반 (event-driven) 처리에 익숙하지 않은 개발자에게는 처음 접근하기 어려운 점이 있습니다. 이 과정에서는 기존 멀티쓰레드와 동기식(synchronous) I/O처리에만 익숙했던 개발자도 차근차근 따라해보며 비동기 I/O처리의 기본 개념을 이해하고, Netty를 본격적으로 활용해 볼 수 있도록 예제 개발을 함께 해보려 합니다.
Java 9 버젼에서 변화된 내용들을 가볍게 정리하는 형태로 만들어봤다.
소프트웨어 캠퍼스 강사팀 4기의 발표자료 이기도 하다.
소프트웨어 캠퍼스(https://www.facebook.com/groups/softwarecamp/)는 강의와 스터디등을 통해 서로를 성장시켜갈 수 있는 커뮤니티가 되려는 곳이다.
[OKKY 세미나] 2018.06.21 (목)
<TDD 잘알못을 위한 돌직구 세미나>의 두 번째 발표자, 정진욱님의 '테스트하기 쉬운 코드로 개발하기' 발표자료입니다.
행사 공지 URL : https://okky.kr/article/472375
1. Spring-boot로
java 웹서버 만들기
2화.
NEXT 2기 Dragonist
nodejs, rubyonrails, 등등 생산성 좋은 것들이 많다고 spring어려워하는 사람들에게
spring도 spring-boot사용하면 보다 빠르게 웹서버 만들수 있다는걸 보여주고 싶었어요
Copyright(c)2015 github.com/dragonist All rights reserved
2. index.html 이 보일래면 어떻게 해야 할지 궁금 한가요?
그건 다음 시간에 ㅋㅋㅋㅋㅋ
이래야 드라마틱한 개발임 ㅋㅋㅋㅋㅋㅋ
이제 index.html을 보여주는 서버를 만들어보자
7. DB : 데이터 베이스
Orcle, MySQL, Mongo, H2
데이터를 저장하는곳
제일 간단한 H2를 써볼꺼다
H2는 로컬 디비여서 따로 사이트에들어가서 깔지않고
Maven보고 깔아오라 시키면 된다
H2 와 동시에 JPA라는 녀석을 써볼꺼다
디비가 뭔지, 어떤 쿼리를 날려야 하는지 알필요없다
그냥 객체지향적으로 데이터를 저장하는 것처럼 보이도록 것임
디비관련 된 부분은 알아서 JPA가 해줄것이다.
14. 만들어져 있는 테스트 코드 파일을 누르고
Ctrl+ C, Ctril+V
이름을 지정하고 OK
(페키지가 필요한면 페키지 정도는 ctrl+N으로 만들고)
새로만든 파일을 마우스로 움직인다.
귀차니즘의 JunitTest 만드는법
15. 테스트 코드 만들고
Run
junit Test Case 만들기
package: demo.repository
class name: UserRepositoryTest
16. Content Assist 기능!
Eclipse가 무거운 이유는 정말 편한 기능이
많이 있기 때문!!!!
인스턴스.(메소드)상태에 커서를 두고
alt+space 나 ctrl+space 눌러보면
사용가능한 메소드 가 나오고
메소드의 리턴값 어떤 용도인지
전부 나옴!
215. }
** Junit Test
@Test :
테스트가 잘 돌아가면 초록불이 뜬다
메소드는 순서대로 실행되지 않는다.
맨밑에 test 메소드 부터 돌아갈 수도 있다
@BeforeClass
테스트묶음 가 돌기 전에 한번 실행된다.
@Before
각 테스트가 돌기 전에 매번 실행된다.
@AfterClass
@After
나머진 알아서
** CRUD로 보는 Repository Test
JPA는 자바 콜랙션(Collection)의 Map 처럼 디비가
다뤄지길 바랬다.
그래서 다음과 같은 코드로 CRUD 테스트가 만들어진다
C: create 추가
R: read 읽기
U: update 수정
D: delete 삭제
216. 여기서 잠깐
repo.save(user)
Entity
Manager
DB
(H2)
저장 해줘 저장 해줘
repo.find(id)
user
repo.find(id)
user
인스턴스 하나
오! 이 user
인스턴스가 만들어진게
있어!
1찾아줘
2리턴
4리턴
3찾아줘
user.setName(“hi”)
repo.save(user)
저장 해줘
내가 갖고 있는
user가 변경되었군
데이터만 변경해주면 되겠네
변경 해줘
JPA가 뭐하는 놈인지 감이오나요?
Japa Persistent API: (persistent_고집,지속)
Entity(user)를 POJO(Plain Old Java Object) 라고 부른다.
JPA안에는 EntityManager라는 녀석이 POJO를 관리한다.
JPA
217. 요청에 대한 응답 처리
Controller
HelloController
MainController
DB역활
Repository
UserRepository DB
요청
User
Model
주고받는 객체
View 응답
JSP
HTML