๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 101

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

์Šคํ”„๋ง๋ถ€ํŠธ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. ํŒ€ ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ์ธํ”„๋กœ์ ํŠธ์ฒ˜๋Ÿผ ๋‚ด ๋จธ๋ฆฟ์†์—์žˆ๋Š” ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํŒ€์›๋“ค๊ณผ์˜ ์†Œํ†ต์ด ์ œ์ผ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ 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

์Šคํ”„๋ง - security

์ตœ์ดˆ ์ง„์ž… ์‹œ ํ•„ํ„ฐ๋ฅผ ํ†ตํ•ด 1์ฐจ๋กœ ํ•„ํ„ฐ ๋˜๊ณ  , ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ตํ•ด ๋นˆ์˜ ๋ชจ๋“  ์ž์›์„ ๋ณด๋ฉฐ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์Šค์บ”ํ• ๋•Œ ์Šคํ”„๋ง ์ปจํ…์ŠคํŠธ ๋‚ด์— ์žˆ๋Š” ๋ชจ๋“  ์ž์›์„ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฆฌํ€˜์ŠคํŠธํ• ๋•Œ ์–ด์„ผํ‹ฐ์ผ€์ด์…˜์€ ํฌ์ŠคํŠธ์š”์ฒญ๋งŒ ๋ฐ›๋Š”๋‹ค. ํฌ์ŠคํŠธ๋กœ ์š”์ฒญํ•˜๋ฉด ๋ฌด์กฐ๊ฑด ๋ฐ”๋””์— ๊ฐ’์ด ์žˆ๊ฒŸ๊ตฌ๋‚˜ ํ•˜๊ณ  ์ธ์‹์„ ํ•œ๋‹ค. ๋ฐ”๋””๊ฐ’ ์ค‘ ์œ ์ €๋„ค์ž„๊ณผ ํŒจ์Šค์›Œ๋“œ๋งŒ ๋‚š์•„์ฑˆ๋‹ค. ์—†์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฆฌํ„ดํ•˜์—ฌ ํŒ…๊ธด๋‹ค. ๋ฐ”๋””๊ฐ€ ์œ ์ €๋„ค์ž„๊ณผ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ์ž‡์œผ๋ฉด ์œ ์ €๋„ค์ž„ ํŒจ์Šค์›ŒํŠธ ์–ด์„ผํ‹ฐ์ผ€์ด์…˜ ํ† ํฐ์„ ํƒ„๋‹ค. ๋กœ๊ทธ์ธ์„ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. /login๋งŒ ๊ตฌํ˜„ํ•ด๋†“์œผ๋ฉด ๋œ๋‹ค. ์ปจํŠธ๋กค๋Ÿฌ๋ฅผ ์•ˆ๋งŒ๋“ค์–ด๋„๋œ๋‹ค. ํฌ์ŠคํŠธ์˜ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ† ํฐ์„ ๋งŒ๋“ค์–ด ๋‹ด์•„๋†“๋Š”๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ์–ด์„ผํ‹ฐ์ผ€์ด์…˜ ๋งค๋‹ˆ์ ธ์—๊ฒŒ ๋„˜๊ธด๋‹ค. ๋ฐ›์•˜๋Š”์ง€๋ฅผ ํ™•์ธํ•œ๋‹ค. 4. ์–ด์„ผํ‹ฐ์ผ€์ด์…˜ ํ”„๋กœ๋ฐ”์ด๋”์—๊ฒŒ ์œ ์ €๋””ํ…Œ์ผ์„ ๋งŒ๋“ค..

java 2021.02.27

์Šคํ”„๋ง ๊ฒŒ์‹œํŒ๋งŒ๋“ค๊ธฐ-ํšŒ์›์ˆ˜์ •ํ”„๋กœํ•„ ์—…๋กœ๋“œํ•˜๊ธฐ

ํผ๋ฐ์ดํ„ฐ๋Š” post์•„๋‹ˆ๋ฉด get๋ฐฉ์‹๋งŒ ์‚ฌ์šฉํ•œ๋‹ค. ์‚ฌ์ง„์„ ์ „์†กํ• ๋•Œ์—๋Š” update๋ฐฉ์‹(put์œผ๋กœ ๋ณด๋‚ด์•ผํ•จ)์ด์ง€๋งŒ ํผ ์•ˆ์— ๋ณด๋‚ด๋ ค๋ฉด post๋ฐฉ์‹์œผ๋กœ ๋ณด๋‚ผ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋•Œ put์œผ๋กœ ๋ณด๋‚ด๋ ค๋ฉด ์Šคํ”„๋ง์—์„œ ์ง€์›ํ•˜๋Š” ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฐธ๊ณ  ๋ธ”๋กœ๊ทธ https://blog.naver.com/getinthere/221736580196 springboot 15๊ฐ• - form:form ํƒœ๊ทธ delete, put ์š”์ฒญ main๋ฉ”์„œ๋“œ ์‹คํ–‰ ํŒŒ์ผ์— ๋ฉ”์†Œ๋“œ ํ•„ํ„ฐ ๊ฑธ๊ธฐโ€‹ blog.naver.com @bean์„ ๋ถ™์ด๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปดํฌ๋„ŒํŠธ์— ๋œฌ๋‹ค. ๋•ก๊ฒจ ์“ธ ์ˆ˜ ์žˆ๋‹ค. * ํŒŒ์ผ ๊ฐฏ์ˆ˜๊ฐ€ n๊ฐœ์ผ๋•Œ name์„ ๋™์ผํ•˜๊ฒŒ ํ•˜๊ณ  ๋ฐ›์„๋•Œ ๋ฐฐ์—ด๋กœ ๋ฐ›์œผ๋ฉด ๋œ๋‹ค. ์‚ฌ์ง„ ์‚ญ์ œ ์‚ฌ์ง„ ์„ค๋ช…์„ ์ž…๋ ฅํ•˜์„ธ์š”. @requestparam MultipartF..

java 2021.02.27

์Šคํ”„๋ง๋ถ€ํŠธ ๊ธฐ๋ณธ๊ฒŒ์‹œํŒ

์š”์ฆ˜์€ ํ•™์›์—์„œ ์Šคํ”„๋ง๋ถ€ํŠธ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ๋ณธ์ ์ธ ๊ฒŒ์‹œํŒ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋‹ค. ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œํŒ๊ธ€์“ฐ๊ธฐ ๋“ฑ์˜ ๊ธฐ๋ณธ์ ์ธ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•œ ์ƒํƒœ์ด๊ณ  ์ธํ„ฐ์…‰ํ„ฐ๋ฅผ ํ†ตํ•œ ์ธ์ฆ์ฒดํฌ๋ฅผ ์™„๋ฃŒํ•˜์˜€๋‹ค. ์ด๊ฒƒ์ด git์— ์˜ฌ๋ผ์™€์žˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ๋“ค๊ณ ์™€ ํฌ์ธํŠธ๋ฅผ ์ฐ๊ณ  ๊ฒŒ์‹œํŒ๊ธ€์“ฐ๊ธฐ, ์ˆ˜์ •, ์‚ญ์ œ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ ํ•  ์˜ˆ์ •์ด๋‹ค. https://www.git-scm.com/book/ko/v2 Git - Book www.git-scm.com 1. git clone์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ทธ๋ƒฅ์€ ์ž„ํฌํŠธ๊ฐ€ ์•ˆ๋œ๋‹ค. ๋ฉ”์ด๋ธ ํ”„๋กœ์ ํŠธ๋กœ ์ž„ํฌํŠธ! ์ฃผ๋ง๋™์•ˆ ํ• ์ˆ˜์žˆ๋Š” ๊ณผ์ œ๊นŒ์ง€ ์™„๋ฃŒ! ๋™์•„์ค„์„ ๋งŒ๋“ค์–ด์„œ ์ง‘์—์„œํ–ˆ๋˜ ์ž‘์—…๋ฌผ์„ git์— ์—…๋กœ๋“œ! ํ•˜๊ธดํ–ˆ๋Š”๋ฐ ์ž˜ ๋ชจ๋ฅด๊ฒŸ๋‹ค.. ๋ญ์ง€..

java 2021.02.27