์ค์นํ ๊ฒ 1. JDK 2. apache tomcat * - jdk - javac, jheap ๋ฑ - jre - Java Class Library JDK ์ค์น ๋ง์ ๊ณต๊ณต๊ธฐ๊ด๊ณผ ํ๋ก์ ํธ์์ 1.8์ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ์ถ์ธ๋ผ๊ณ ํ๊ธฐ ๋๋ฌธ์ JDK8 (jdk1.8)์ ๋ค์ด ๋ฐ๋๋ค. (ํ๋ก์ ํธ๋ง๋ค ๋ค๋ฅด๊ฒ ๋ค์ด๋ฐ์ผ๋ฉด ๋๋ค!) https://www.oracle.com/java/technologies/javase-downloads.html 1. ๋ด PC ์ค๋ฅธ์ชฝ ๋ฒํผ - ์์ฑ - ๊ณ ๊ธ ์์คํ
์ค์ - ํ๊ฒฝ๋ณ์ - ์์คํ
๋ณ์์์ ์๋ก ๋ง๋ค๊ธฐ 2. Path - ํธ์ง - ์๋ก๋ง๋ค๊ธฐ %JAVA_HOME%\bin - ํ์ธ : cmd์ฐฝ java -version ๋ฒ์ ์ด ์ถ๋ ฅ๋๋ฉด ์ฑ๊ณต apache tomcat ์ค์น http://tom..
์ ์ฒด ๊ธ
2020/05/16 - [WEB/Spring] - ์ด๋ฏธ์ง ์
๋ก๋ (Spring+Ajax) ์ด๋ฏธ์ง ์
๋ก๋ (Spring+Ajax) Hyper ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๊ณผ์ ์ค ์ด๋ ค์ํ๋ ํ์ผ ์
๋ก๋์ ๋ํด์ ๋ค์ ๊ณต๋ถํ๊ฒ ๋์๋ค. commons-fileupload๋ฅผ ์ฌ์ฉํ์๊ณ pom.xml์ ์ถ๊ฐํด์ค์ผ ํ๋ค. Ajax๋ก ๊ตฌํํด์ผ ํ๋ Controller์ @ResponseBody๋ฅผ ๋ถ. aejeong.com ์ด์ด์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ๊ตฌํํ๊ฒ ์ต๋๋ค. var upload = document.querySelector('#file'); upload.addEventListener('change',function (e) { var get_file = e.target.files; var selected_file = upload.fi..
Hyper ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๊ณผ์ ์ค ์ด๋ ค์ํ๋ ํ์ผ ์
๋ก๋์ ๋ํด์ ๋ค์ ๊ณต๋ถํ๊ฒ ๋์๋ค. commons-fileupload๋ฅผ ์ฌ์ฉํ์๊ณ pom.xml์ ์ถ๊ฐํด์ค์ผ ํ๋ค. Ajax๋ก ๊ตฌํํด์ผ ํ๋ Controller์ @ResponseBody๋ฅผ ๋ถ์ฌ์ค์ผ ํ๋ค ์ด๊ฑฐ ๋ํ ์ฌ์ฉํ๋ ค๋ฉด pom.xml์ jackson-mapper๋ฅผ ์ถ๊ฐํด์ค์ผ ํ๋ค. pom.xml์ ์ถ๊ฐํด์ผ ํ ๊ฒ. (mvnrepository.com) 1. commons-fileupload 2. jackson-mapper ์ ์ผ ๋จผ์ ํ์ผ ์
๋ก๋๋ฅผ ๊ตฌํ ํ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ํ๊ฒ ๋ค. 1. spring ํด๋์์ xxx-context.xml ์ ํ์ผ ๋ฆฌ์กธ๋ฒ๋ฅผ ์ง์ ํด์ค์ผ ํ๋ค. + application / servlet -context์ ์ฐจ์ด ๋๋ณด๊ธฐ ์ด ๋ ..
์ฌ์ฉ์ ์ ์ฒด ์กฐํ๋ฅผ ํด๋ณด์๋ค. ์ฒ์ ์ฌ์ฉํด๋ด์ ์ฝ์ง์ ์กฐ๊ธ ํ๋๋ฐ ์ฌ๋ฏธ์์๊ณ , ๋ฌด์๋ณด๋ค ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ํํํ ์ ์๊ณ ๊ธฐ๋ฅ์ด ๋ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ผ์ ์ ์ตํ๋ค. ๋จผ์ ์ฌ์ฉํ๋ ค๋ฉด ์คํฌ๋ฆฝํธ๋ฅผ ํฌํจํด์ค์ผ ํ๋ค. www.cdn.datatables.net/1.10.21/css/jquery.dataTables.min.css www.cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js HTML ์ฝ๋ ์ฌ์ฉ์ID ์ฌ์ฉ์ ์ด๋ฆ ์ ํ๋ฒํธ E-mail ๊ถํ JavaScript ์ฝ๋ $(document).ready(function() { $("#deviceTable").DataTable({ "pageLength": 10, ajax:{ url:"./userAll.do", type:"GET"..
1.ํฐ์บฃ ์ธ์
์ ์ฌ์ฉํ๋ค. - ๊ธฐ๋ณธ ์ ํ๋๋ ๋ฐฉ์์ด๋ค. - WAS์ ์ ์ฅ๋๋๋ฐ 2๋์ด์์ WAS๋ก ๊ตฌ๋๋๋ ํ๊ฒฝ์์๋ ์ถ๊ฐ ์ค์ ์ด ํ์ํ๋ค. 2.MySQL๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ธ์
์ ์ฅ์๋ก ์ฌ์ฉํ๋ค. - ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด๋ค. - ๋ก๊ทธ์ธ ์์ฒญ์ DB IO๊ฐ ๋ฐ์ํ ์ ์๋ค. 3.Redis ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ DB๋ฅผ ์ธ์
์ ์ฅ์๋ก ์ด์ฉํ๋ค. ์ฌ์ฉ๋ฃ๋ฅผ ์ง๋ถํด์ผํ๋ค! ์๋น์ค๊ฐ ์ปค์ง๋ ๊ณ ๋ ค! 'org.spirngframework.session:spring-session-jdbc' ๋ฅผ gradle์ ๋ฑ๋กํด์ฃผ๊ณ application.prorperties์ spring.session.store-type=jdbc ๋ง ๋ฑ๋กํ์ฃผ๋ฉด jpa๊ฐ ์ธ์
ํ
์ด๋ธ์ ์๋์ผ๋ก ์์ฑํ์ฌ ์ธ์
์ ์ฅ์๊ฐ ์ง์ ๋๋ค!
Enum์ ํตํด ์ป๋ ๊ธฐ๋ณธ์ ์ธ ์ฅ์ ๋ฌธ์์ด๊ณผ ๋น๊ตํด, IDE์ ์ง์์ ๋ฐ์ ์ ์๋ค. ์๋์์ฑ, ์คํ๊ฒ์ฆ, ํ
์คํธ ๋ฆฌํฉํ ๋ง ๋ฑ ํ์ฉ ๊ฐ๋ฅํ ๊ฐ๋ค์ ์ ํํ ์ ์๋ค. ๋ฆฌํฉํ ๋ง์ ๋ณ๊ฒฝ ๋ฒ์๊ฐ ์ต์ํ ๋๋ค. ๋ด์ฉ์ ์ถ๊ฐ๊ฐ ํ์ํด๋, Enum์ฝ๋์ธ์ ์์ ํ ํ์๊ฐ ์๋ค. Java Enum์ธ ๊ฒฝ์ฐ int๊ฐ์ด ์๋๋ผ ์์ ํ ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค์ด๋ค! ์ฐ์ enumํ์
์ผ๋ก ํด๋์ค๋ฅผ ์์ฑํด์ผํ๋ค ์ด์ ์์๋ฅผ ์ ์ธํ๋ฉด ๋๋๋ฐ, ๊ด๋ก์ ์ผ๋ก ๋ชจ๋ ๋๋ฌธ์๋ก ์์ฑํ๋ค. Entityํด๋์ค์ ์ ์ธํด์ฃผ๊ธฐ ์ํด์ String์ด ์๋ enum์ ์ ์ธํ๋ค. JPA๋ฅผ ์ฌ์ฉํ๋ฏ๋ก @Enumerated(EnumType.SPRING)์ ์ ์ธํ๋ฉด Enumํ๋๊ฐ ํ
์ด๋ธ์ ์ ์ฅ์ ์ซ์ํ์ด ์๋, Enum์ ์ด๋ฆ์ด ์ ์ฅ๋๋ค. ์ฌ๊ธฐ์๋ GUEST,USER..
๊นํ๋ธ์ ์ต์ํ์ง ์์์ ์๊พธ ๋ญ๊ฐ ํ์ด์ง๋์ง non-fast-forward ์ค๋ฅ๊ฐ ์์ฃผ ๋ฌ๋ค..... ใ
ใ
ใ
ใ
์ผใ
์ผ์์ผใ
ใ
Advanced...๋ฅผ ๋๋ฌ์ ๊ธฐ์กด์ ์๋๊ฑฐ ํด์งํต ๋๋ฌ์ ์ญ์ ํด์ค๋ค์์ Source ref์ master๋ก ์ถ๊ฐํด์ค๋ค. ๋ง์ง๋ง์ผ๋ก Marge์์ผ์ฃผ๊ณ Push!
์คํ๋ง ์ํ๋ฆฌํฐ๋ ๋ง๊ฐํ ์ธ์ฆ๊ณผ ์ธ๊ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง ์คํ๋ง ํ๋ ์์ํฌ์ด๋ค. ์ธ์ฆ์ด๋, ๋ณดํธ๋ ๋ฆฌ์์ค์ ์ ๊ทผํ ๋์์ ๋ํด ๋๊ตฌ์ธ์ง, ์์
์ ์ํํด๋ ๋๋์ง ํ์ธํ๋ ๊ณผ์ ์ด๋ค. ์ธ๊ฐ๋, ์ธ์ฆ ์ดํ์ ํด๋น ๋ฆฌ์์ค์ ๋ํด ์ ๊ทผ ๊ฐ๋ฅํ ๊ถํ์ ๊ฐ์ง๊ณ ์๋์ง ํ์ธํ๋ ๊ณผ์ ์ด๋ค. ๋ณด์๊ณผ ๊ด๋ จํด์ ์ฒด๊ณ์ ์ผ๋ก ๋ง์ ์ต์
์ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๊ฐ ์ผ์ผ์ด ๋ณด์ ๊ด๋ จ ๋ก์ง์ ์์ฑํ์ง ์์๋ ๋๋ค. ๊ตฌ๊ธ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํํด๋ณด์! https://console.cloud.google.com/ ๋ก ์ ์ํด์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ํ๋ก์ ํธ๋ฅผ ์ ํํ ํ API ๋ฐ ์๋น์ค -> ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด OAuth ํด๋ผ์ด์ธํธ ID ํด๋ฆญ! ๋์ ํ๋ฉด ์ค ์ธ๋ถ/๋ด๋ถ๊ฐ ์๋๋ฐ ์ธ๋ถ๋ฅผ ํด๋ฆญํ๋ค. ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฆ : ์ฌ์ฉ์์๊ฒ ๋
ธ์ถ๋ ์ ํ๋ฆฌ์ผ์ด..
์ง์ ๋ ํ
ํ๋ฆฟ ์์๊ณผ ๋ฐ์ดํฐ๊ฐ ํฉ์ณ์ ธ HTML๋ฌธ์๋ฅผ ์ถ๋ ฅํ๋ ์ํํธ์จ์ด ์๋ฒ ํ
ํ๋ฆฟ ์์ง - JSP(๋ช
ํํ๊ฒ๋ ์๋) ..๋ฑ ํด๋ผ์ด์ธํธ ํ
ํ๋ฆฟ ์์ง - React,Vue ...๋ฑ ์์ญ๊ณผ ์๋ํ๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ธ๋ผ์ฐ์ ์์์ ์๋ - ๋ธ๋ผ์ฐ์ ์์ ์๋๋ ๋๋ ์๋ฒ ํ
ํ๋ฆฟ ์์ง์ด ์ ์ดํ ์ ์๋ค. - ์๋ฒ์์๋ Jsonํน์ xmlํ์์ ํ
์ดํฐ๋ง ์ ๋ฌํ๊ณ ํด๋ผ์ด์ธํธ์์ ์กฐ๋ฆฝํ๋ค.
๊ต์ก๊ณผ์ ๋์ ์ธ์ ๋ง๋ค์ด์ก๋์ง, ์ธ์ ์์ ๋์๋์ง์ ๋ฐ๋ฅธ ์ ์ง๋ณด์ ์ค์์ฑ์ ๋ฐฐ์ฐ์ง ๋ชปํ๋ค. ์ด์ ๋ชจ๋ธ๋งํ ๋ ๊ณ ๋ คํด์ ์ง์ผ๊ฒ ๊ตฐ... ๊ฐ์ ๋ด์ฉ์ธ๋ฐ ๋งค๋ฒ DB์ insert/update์ ํ๊ธฐ์๋ ์ฝ๋๊ฐ ์ฌ๊ธฐ์ ๊ธฐ ๋ค์ด๊ฐ๊ฒ ๋๋๊น ์์ฑ๋ ๋ ๊ฐ์ด ์์ฑ๋๋ฉด ํธ๋ฆฌํ๋ค! domain ํด๋์ BaseTimeEntityํด๋์ค๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ๋ชจ๋ Entity์ ์์ ํด๋์ค๊ฐ ๋๊ฒ ํ๋ฉด ๋๋ค. 1. @MappedSpuerclass ๋ฅผ ์ด์ฉํ๋ฉด JPA Entityํด๋์ค๋ค์ด BaseTimeEntity๋ฅผ ์์ํ ๊ฒฝ์ฐ ํ๋๋ค๋ ์ปฌ๋ผ์ผ๋ก ์ธ์ํ๋๋ก ํ๋ค. 2. @EntityListeners(AuditingEntityListener.class)๋ก ํด๋น ํด๋์ค์ Auditing๊ธฐ๋ฅ์ ํฌํจํ๋ค. 3. @CreatedDate priva..
//postRepository์์ ๋์ด์จ ๊ฒฐ๊ณผ๋ฅผ postsRepository.findAllDesc().stream() //Stream์ ํตํด map์ผ๋ก new PostsListResponseDto ์ ๋งคํ ํด์ค๋ค. //PostsListResponseDto์์๋ ํ๋ผ๋ฏธํฐ๋ก postRepository์์ ๋์ด์จ ๊ฒฐ๊ณผ Entity posts๋ฅผ ๋ฐ๊ณ ์์ผ๋ฏ๋ก //๊ฒฐ๊ณผ์ ์ผ๋ก .map(posts -> new PostsListResponseDto(posts)) .map(PostsListResponseDto::new) //collect๋ฅผ ์ฌ์ฉํด์ List๋ก ๋ณํํ๋ค. .collect(Collectors.toList()); stream์ด๋ผ๋ ๊ฒ ์๋ ๊ฒ ์กฐ์ฐจ ๋ชฐ๋ผ์ ๊ณต๋ถํ๋ฉด์ ํผ๋์ค๋ฌ์ ๋ค ๋๋ค์์ ๋ฐฐ์ด ์ ์ด ์์ผ๋. ใ
..
HTML์ ์์์๋ถํฐ ์ฝ๋๊ฐ ์คํ๋๊ธฐ ๋๋ฌธ์ head๊ฐ ์คํ๋๊ณ body๊ฐ ์คํ๋๋ค. js์ ์ฉ๋์ด ํฌ๋ฉด ํด์๋ก body๋ถ๋ถ์ ์คํ์ด ๋ฆ์ด์ง๊ธฐ ๋๋ฌธ์ bodyํ๋จ์ ๋๋๊ฒ ์ข๋ค css๋ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ์ญํ ์ด๋ฏ๋ก head์์ ๋ถ๋ฌ์ค๋ ๊ฒ์ด ์ข๋ค + ๋ถํธ์คํธ๋ฉ์ธ ๊ฒฝ์ฐ ์ ์ด์ฟผ๋ฆฌ์ ์์กด ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์ ์ด์ฟผ๋ฆฌ๋ฅผ ๋จผ์ ํธ์ถํ๋๊ฒ ๋๋๋ก ์์ฑํด์ผ ํ๋ค. + Scriptlet,jstl,el์ ์๋ฒ๋จ์์ ์คํ ๋๋ฉฐ ๋ธ๋ผ์ฐ์ ์์ ์คํ๋๋ Javascript์์๋ ๋ณ์๋ฅผ ์ง์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. + JAVA>JSTL>HTML>Javscript + jsp์ธ๋ถ๋ก js๋ฅผ ๋นผ๋ฉด ์๋์ํ ๊ฒ๋๋ค. ์๋ฒ๋ jsp๋ฅผ ์ฒ๋ฆฌํ์ง ์ธ๋ถ์์ ์ํฌํธ๋๋ js๋ฅผ ์ฒ๋ฆฌํ์ง๋ ์๋๋ค.