java 60

๊ณต๊ณต API ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ

์•„์นจ์— ์–ด๋ฌด๋‹ˆ๊ป˜์„œ ๋งˆ์Šคํฌ ์‚ฌ๋Š”๋‚ ์ด๋ผ๊ณ  ์žฌ๊ณ ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋‹ฌ๋ผ๊ณ  ํ•ด์„œ ํ™•์ธํ•ด์ฃผ๊ณ  ํ‰์†Œ ๊ณต๊ณตAPI๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ณ ์‹ถ์—ˆ๋Š”๋ฐ ์•ฝ๊ตญ ๋งˆ์Šคํฌ ์žฌ๊ณ  ๊ณต๊ณต API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ์žฌ๊ณ ํ™•์ธ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๋ฉด ์ด ์‹œ๊ตญ์— ์ข‹์€ ํฌํŠธํด๋ฆฌ์˜ค ์ผ ๊ฒƒ ๊ฐ™์•„ ๋‚˜๋‘ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ๋กœ ํ•ด๋•… ์‹ค์Šต์˜ ์˜๋ฏธ๋ฅผ ๋‘๊ณ  ์Šคํ”„๋ง๋ถ€ํŠธ๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œ๋กœ ์ž‘์—…ํ•ด๋ณด์•„์•ผ ๊ฒ ๋‹น. 1. ๊ณต๊ณต๋ฐ์ดํ„ฐ ํ…Œ์ŠคํŠธ * ์‚ฌ์šฉํ•  ๊ณต๊ณต๋ฐ์ดํ„ฐAPI https://www.data.go.kr/dataset/15043025/openapi.do ๊ณต๊ณต๋ฐ์ดํ„ฐ ํฌํ„ธ ๊ตญ๊ฐ€์—์„œ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผใ€Ž๊ณต๊ณต๋ฐ์ดํ„ฐ์˜ ์ œ๊ณต ๋ฐ ์ด์šฉ ํ™œ์„ฑํ™”์— ๊ด€ํ•œ ๋ฒ•๋ฅ (์ œ11956ํ˜ธ)ใ€์— ๋”ฐ๋ผ ๊ฐœ๋ฐฉํ•˜์—ฌ ๊ตญ๋ฏผ๋“ค์ด ๋ณด๋‹ค ์‰ฝ๊ณ  ์šฉ์ดํ•˜๊ฒŒ ๊ณต์œ •ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณต๊ณต๋ฐ์ดํ„ฐ(Datase www.data.go.kr ..

java 2021.02.27

์Šคํ”„๋ง๋ถ€ํŠธ aws ๋ฐฐํฌํ•˜๊ธฐ

1. aws ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ - ์šฐ๋ถ„ํˆฌ, 8080์—ด์–ด์ฃผ๊ณ , ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ฌด๋ฃŒ์ตœ๋Œ€์ธ 30์œผ๋กœ ์„ค์ • - ํ‚ค ๋‹ค์šด๋ฐ›์•„์„œ ๊ฒฝ๋กœ ๊ผญ ๊ธฐ์–ตํ•˜๊ธฐ 2. ํ‘ธํ‹ฐ๋ฅผ ํ†ตํ•ด ๋‚˜์˜ ์šฐ๋ถ„ํˆฌ์— ์ ‘์† - ๋น„๋ฐ€๋ฒˆํ˜ธ ์…‹ํŒ… sudo passwd ubuntu sudo passwd root - ํ•„์š”ํ•œ ํŒŒ์ผ ์„ค์น˜ํ•˜๊ธฐ apt-get update apt-get install maven apt-get install openjdk-8-jdk apt-get install mysql-server-5.7 ํŒจ์Šค์›Œ๋“œ๋งŒ ์„ค์ •ํ•ด๋†“์€ ์ƒํƒœ์—์„œ java-version์„ ํ™•์ธํ•ด๋ณด๋‹ˆ 11.0.6์ด ํ™•์ธ๋˜๋Š” ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋”๋ผ. apt-get purge openjdk* : ์„ค์น˜๋œ jdkํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด ๋นˆ ์ƒํƒœ์—์„œ ๋‹ค์šด๋ฐ›์•„์•ผ๊ฒ ๋‹ค. 3. ๋ฐฐํฌํ•  ํŒŒ์ผ git ๋‚ด๋ ค๋ฐ›๊ธฐ git..

java 2021.02.27

Spring boot๋ฅผ ์ด์šฉํ•œ ๋‹ค๋ฐฉ ํ™ˆํŽ˜์ด์ง€๋งŒ๋“ค๊ธฐ

์ฝ”๋กœ๋‚˜19์™€ ํ•จ๊ป˜ํ•œ ํ”„๋กœ์ ํŠธ์˜€๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ์•„๋ž˜์˜ ๋‹ค๋ฐฉํŽ˜์ด์ง€๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ๋‹ค. https://www.dabangapp.com/ ๋ถ€๋™์‚ฐ ํ•„์ˆ˜ ์•ฑ ๋‹ค๋ฐฉ ์›๋ฃธ, ํˆฌ๋ฃธ, ์˜คํ”ผ์Šคํ…”, ์•„ํŒŒํŠธ๊นŒ์ง€ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋ฐฉ, ๋‹ค๋ฐฉ์— ๋‹ค ์žˆ๋‹ค! www.dabangapp.com ๋‹ค๋ฐฉ์˜ ํŽ˜์ด์ง€๋Š” ์„ธ์ž…์ž, ๋ฐฉ์ฃผ์ธ, ๊ณต์ธ์ค‘๊ฐœ์‚ฌ ์ด ์…‹์˜ ์ฃผ์ฒด๋ณ„๋กœ ๊ฐ€์ž…๊ฒฝ๋กœ ๋“ฑ์˜ ํŽ˜์ด์ง€๊ฐ€ ๋‹ฌ๋ž๋Š”๋ฐ ํ•จ๊ป˜ํ•˜๋Š” ์กฐ์›์ด 3๋ช…์ด๋ผ ํ•œํŽ˜์ด์ง€์— ๊ถŒํ•œ๋ณ„๋กœ ๋ณผ์ˆ˜์žˆ๋Š” ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ๋žŒ๋งŒ ํŽ˜์ด์ง€๋ฅผ ๋ณผ์ˆ˜์žˆ๋„๋ก ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ์Šคํ”„๋ง๋ถ€ํŠธ ํˆด์„ ์‚ฌ์šฉ, DB๋Š” Mysql 5.7๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. mvc model 2 ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์กฐ๋ฅผ ์žก์•˜๊ณ  JSP๊ธฐ์ˆ ์„ ์ด์šฉํ•˜์˜€๋‹ค. ๋˜ํ•œ jstl, lombok, jasper, mybatis๋“ฑ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ ์นด์นด์˜ค์ง€..

java 2021.02.27

์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋กœ์ ํŠธ - ์‹œ์ž‘ํ•˜๊ธฐ

์Šคํ”„๋ง๋ถ€ํŠธ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ํŒ€ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ์ธํ”„๋กœ์ ํŠธ์ฒ˜๋Ÿผ ๋‚ด ๋จธ๋ฆฟ์†์—์žˆ๋Š” ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํŒ€์›๋“ค๊ณผ์˜ ์†Œํ†ต์ด ์ œ์ผ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ jSP ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ˆœ์„œ์™€๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๊ฒŒ ์ง„ํ–‰ํ–ˆ๋‹ค. ์ฒ˜์Œ์œผ๋กœ ์ฃผ์ œ์™€ ํ•„์š”ํ•œ ์ตœ์†Œ์˜ ํ™”๋ฉด์„ ์ •ํ•˜๊ธฐ๋กœํ–ˆ๋‹ค. ์—ญ์‹œ๋‚˜ ๋‚ด๊ฐ€ ๋‹น์—ฐํžˆ ์ด๋Ÿฐ ๊ธฐ๋Šฅ์ด ์žˆ์–ด์•ผ ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€? ๋ผ๋Š” ์ƒ๊ฐ์€ ๋‚˜๋งŒ ๊ฐ–๊ณ ์žˆ์—ˆ๊ณ  ๋‹ค๋ฅธ ํŒ€์›๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€๋‹น. ์„œ๋กœ ์˜๊ฒฌ์„ ์กฐ์œจํ•˜์—ฌ ์ฃผ์ œ์™€ ํ™”๋ฉด ๋‹ค์Œ์œผ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์„ ์ •ํ•˜์˜€๋‹ค. ์ฃผ์ œ : ๋‹ค๋ดฅ 1. ์ฃผ์ฒด (1) ์„ธ์ž…์ž - ๋ฐฉ ๊ตฌํ•˜๋Š” ์‚ฌ๋žŒ(์ผ๋ฐ˜์ด์šฉ์ž) (2) ๋ฐฉ์ฃผ์ธ - ๋ฐฉ(๋งค๋ฌผ)์„ ์˜ฌ๋ฆฌ๋Š” ์‚ฌ๋žŒ (3) ๊ณต์ธ์ค‘๊ฐœ์‚ฌ - ๋ฐฉ์ฃผ์ธ์ด ์˜ฌ๋ฆฐ ๋ฐฉ์„ ์Šน์ธ(๋งค๋ฌผํ™•์ธ)ํ•ด์ฃผ๋Š” ์‚ฌ๋žŒ (4) ๊ด€๋ฆฌ์ž โ€‹ 2. ํ™”๋ฉด์„ค๊ณ„ 1) ๊ณตํ†ต (1) ๋ฉ”์ธํ™”๋ฉด โ‘  ๋””์ž์ธ - ๊ฒ€..

java 2021.02.27

์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œ -๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ(3) ํŽ˜์ด์ง•

-pageMaker.java package com.seoha.bbs.dto; public class PageMaker { private int totalCount; private int startPage; private int endPage; private boolean prev; private boolean next; private int displayPageNum=10; private Criteria cri; public int getTotalCount() { return totalCount; } public void setTotalCount(int totalCount) { this.totalCount = totalCount; calcData(); } private void calcData() { e..

java 2021.02.27

์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œ - ๊ฒŒ์‹œํŒ๋งŒ๋“ค๊ธฐ(2) ๊ธฐ๋Šฅ ๊ตฌํ˜„

์˜ค๋Š˜์€ ์ปจ๋””์…˜์ด ์ข€ ๋‚ซ๋‹น ํ…์…˜ ์ข€ ์˜ฌ๋ ค๋ณด์•„์•ผ๊ฒ ๋‹น ํŽ˜์ด์ง•๊ธฐ์ˆ  ๊ตฌํ˜„ ์‹œ mysql์€ limit์„ ์‚ฌ์šฉํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์˜ค๋ผํด๊ตฌ๋ฒ„์ „์—๋Š” ์ด๊ฒƒ์ด ์—†๋‹ค. ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ ์ด๋ฒˆ์—” ์˜ค๋ผํด 1. ์˜ค๋ผํด ์…‹ํŒ…์œผ๋กœ ๋ณ€๊ฒฝ - pom.xml ์ˆ˜์ • mysql์ด์˜€๋˜ ๊ฒƒ์„ ์˜ค๋ผํด ์…‹ํŒ…์œผ๋กœ ๋ณ€๊ฒฝ - jdbc๋นŒ๋“œํŒจ์Šค - ์˜ค๋ผํด database ์ƒ์„ฑ CREATE TABLE "SEOHA"."BOARD" ("BNO" NUMBER, "TITLE" VARCHAR2(100 BYTE), "CONTENT" VARCHAR2(2000 BYTE), "WRITER" VARCHAR2(100 BYTE), "REGDATE" DATE DEFAULT sysdate, "READCOUNT" NUMBER DEFAULT 0 ) SEGMENT CREATION IMME..

java 2021.02.27

์Šคํ”„๋ง ๋ ˆ๊ฑฐ์‹œ - ๊ฒŒ์‹œํŒ๋งŒ๋“ค๊ธฐ(1) ํ™˜๊ฒฝ์„ค์ •

์„ ์ƒ๋‹˜์ด ๋ฐ”๋€Œ๊ณ  ๊ธฐ๋ณธ์ ์ธ ๋ ˆ๋ฒจ์„ ํ™•์ธํ•˜๊ธฐ์œ„ํ•ด ๋ ˆ๊ฑฐ์‹œ๋กœ ๊ฒŒ์‹œํŒ์„ ๋งŒ๋“ค์–ด ๋ณด๊ธฐ๋กœํ–ˆ๋‹น. ์Œค ๋„ˆ๋ฌด ๋นจ๋ž‘...ํžใ… ใ…  ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ์ž๋™ํ†ฐ์บฃ์ด์ง€๋งŒ ๋ ˆ๊ฑฐ์‹œ๋กœ ๊ฒŒ์‹œํŒ๋งŒ๋“ค๋•Œ๋Š” ์„œ๋ฒ„ ์„ค์ •ํ•ด์ค˜์•ผํ•œ๋‹ค. ๊ธฐ๋ณธ ๊ฒฝ๋กœ ์„ค์ • ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ž๋งˆ์ž ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด ๋‹ค์‹œ ๋‹ค์šด ๋ฐ›๊ธฐ์œ„ํ•ด ๋ฐ‘์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์„ ์‹น ์ง€์›Œ๋ฒ„๋ฆฌ์Ÿˆ ๊บ… ํ•œ๊ธ€ ์ธ์ฝ”๋”ฉ ์„ค์ •๋„ ํ•ด์ฃผ์Ÿˆ ์•„๋ž˜๋Š” ์›Œํฌ์ŠคํŽ˜์ด์Šค์˜ ์ธ์ฝ”๋”ฉ์„ค์ •! ์•ˆํ•ด์ค˜๋„ ์ž˜ ๋จน๊ธด ํ•œ๋ฐ ํ•œ๋ฒˆ ํ•ด๋ณด์ง€ ๋ชจ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์˜ ๋ฒ„์ „์„ ๋งž์ถฐ์•ผํ•œ๋‹ค. ์Šคํ”„๋ง ๋ฒ„์ „์„ ํ™•์ธํ•ด์„œ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค. ์ž๋ฐ”๋ฒ„์ „์€ 1.8! ๋‹จ์œ„ํ…Œ์ŠคํŠธ ํ•  ์ œ์ด์œ ๋‹›์˜ ๋ฒ„์ „์€ 4.12! ์Šคํ”„๋งํ…Œ์ŠคํŠธ๋„ ๋‹ค์šด! pom์— ๋ถ™์ผ๋•Œ์—๋„ ๋‚˜์˜์Šคํ”„๋ง๋ฒ„์ „์„ ํ™•์ธํ•˜์—ฌ ๋ถ™์—ฌ๋„ฃ๊ธฐ๋ฅผ ํ•˜์Ÿˆ! ํ†ฐ์บฃ ์ž˜ ๋œจ๋Š”๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค! ๊ทผ๋ฐ ํ•œ๊ธ€์ด ๊นจ์ง€๋‹ˆ web.xml์„ ์ˆ˜์ •ํ•˜์—ฌ์•ผ๊ฒ ๋‹ค. encodingFi..

java 2021.02.27

์Šคํ”„๋ง AOP

@around : ํ•จ์ˆ˜ ํ˜ธ์ถœ์ „, ํ˜ธ์ถœํ›„ @before: ํ•จ์ˆ˜ ํ˜ธ์ถœ ์ „ @after : ํ•จ์ˆ˜ ํ˜ธ์ถœ ํ›„ ์–ด๋ผ์šด๋“œ์™€ ์• ํ”„ํ„ฐ๋Š” ์˜ค๋ธŒ์ ํŠธ ๋ฆฌํ„ด ํƒ€์ž…์ด ์žˆ๋‹ค. ๋น„ํฌ๋Š” ๋ฆฌํ„ดํƒ€์ž…์ด ์—†๋‹ค. ํ•จ์ˆ˜๋ฅผ ํ”„๋ก์‹œ๋กœ ๋ฐ๋ ค์˜ค๋Š”๋ฐ ์›จ์ด๋น™์ด๋ผ๊ณ  ํ•œ๋‹ค. ํŒŒ๋ผ๋ฉ”ํ„ฐ๋“ค๋“ฑ์˜ ๋ฐ”๋””๊ฐ’๋“ค๋„ ๋“ค๊ณ  ์˜ค๋Š”๋ฐ ํ”„๋กœ์‹œ๋”ฉ์กฐ์ธํฌ์ธํŠธํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉ ํ•˜๋ฉด ๋œ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋ผ์šด๋“œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐธ๋ฆฌ๋“œ๊ฑธ๋ฉด ๋ฐ”์ธ๋”ฉ๋ฆฌ์ ˆํŠธํƒ€์ž…์œผ๋กœ ๋ชจ๋‘ ์ €์žฅ๋œ๋‹ค. teace > debug > info > warn > error ๋””๋ฒ„๊ทธ ๋ชจ๋“œ๋กœ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ธํฌ์ด์ƒ๋ถ€ํ„ฐ ์ฝ˜์†”์— ์ฐํžŒ๋‹ค. logback.xml ์—์„œ ์„ค์ •ํ• ์ˆ˜ ์žˆ๋‹ค. ->resources ์—์„œ ์ƒ์„ฑํ•˜์—ฌ ์„ค์ •ํ•˜๋ฉด ์Šคํ”„๋ง์ด ์ฒ˜์Œ ์‹คํ–‰๋ ๋•Œ ์ฝ๋Š”๋‹ค. ๊นƒ ํฌ๋ก  ๊นƒ ๋กœ๊ทธ ์ปค๋ฐ‹ ๋’ค์—์žˆ๋Š”๊ฒƒ ๋ณต์‚ฌํ•ด์„œ ํ˜„์žฌ ๋ธŒ๋žœ์น˜์—์„œ ๊นƒ ๋ฆฌ์…‹ ์†Œํ”„ํŠธ๋Š” ์ปค๋ฐ‹๋งŒ ๋‚ ..

java 2021.02.27

์Šคํ”„๋ง security ์„ค์ •ํ•˜๊ธฐ

@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SessionIntercepter()) .addPathPatterns("/user/profile/**") .addPathPatterns("/post/write/**") .addPathPatterns("/post/update/**") .addPathPatterns("/post/delete/**"); // addExcludePatterns() ์ œ์™ธ ์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ!! } 1. ์‹œํ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ์œ„ํ•œ ์‚ญ์ œํŒŒ์ผ - WebConfig.java ์ธํ„ฐ์…‰ํ„ฐ ์‚ฌ์šฉ ์•ˆํ•จ - SessionIntercepter ํ†ต์งธ๋กœ ๋‚ ๋ฆผ, ์ธํ„ฐ์…‰ํ„ฐ ์ž‘๋™ ์•ˆํ•จ - pom..

java 2021.02.27