GiantStepDEV
article thumbnail

์•ˆ๋…•ํ•˜์„ธ์š”!

์›”๋ชจ๋‹ ์ž…๋‹ˆ๋‹ค ใ…Žใ…Žใ…Ž ์˜ค๋Š˜์€ ํ•™์› ์ž์ฒด ํœด๊ฐ•์ธ ๋‚ ์ด๋ผ ์—ฌ์œ ์žˆ๊ฒŒ ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์–ด์š”.

 

์ œ๊ฐ€ ์ง€๋‚œ ๋ฒˆ์— ์ดˆ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์ค‘์ด๋ผ ๋ธ”๋กœ๊ทธ ์—…๋กœ๋“œ๊ฐ€ ์กฐ๊ธˆ ๋„์—„๋„์—„ ๋๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ์š”!

์˜ค๋Š˜ ๋“œ๋””์–ด ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋˜์–ด์„œ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ธฐ๊ณ ์ž ๋ˆˆ ๋œจ์ž๋งˆ์ž ๋ธ”๋กœ๊ทธ๋ฅผ ์ผฐ์Šต๋‹ˆ๋‹ค. ๐Ÿค“

 

์Œ ๋‚ด์ผ ๋ฐœํ‘œ๊นŒ์ง€ ๋๋‚˜์•ผ ๋งˆ๋ฌด๋ฆฌ๊ธด ํ•˜์ง€๋งŒ

์˜ค๋Š˜ ๋”ฑํžˆ ํ•  ๊ฒƒ๋„ ์—†๊ณ  ํ•ด์„œ ์—ฌ์œ ๋กญ๊ฒŒ ํ›„๊ธฐ๋ฅผ ๋‚จ๊ฒจ๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.


๊ด€๋ จ ์ž๋ฃŒ

๐Ÿ”—GitHub

https://github.com/chicken-tender/JDBC_OracleDB_PetCommunity.git

 

GitHub - chicken-tender/JDBC_OracleDB_PetCommunity

Contribute to chicken-tender/JDBC_OracleDB_PetCommunity development by creating an account on GitHub.

github.com

https://github.com/chicken-tender/Thymeleaf_PetCommunity.git

 

GitHub - chicken-tender/Thymeleaf_PetCommunity

Contribute to chicken-tender/Thymeleaf_PetCommunity development by creating an account on GitHub.

github.com

๐Ÿ”ง์‚ฌ์šฉํ•œ ๊ฒƒ

  • IDE, App : IntelliJ, Dbeaver, Sourcetree
  • DB : Oracle
  • ์–ธ์–ด : Java
  • ๊ธฐ๋ก : Notion

โš™๏ธ ๊ตฌํ˜„ ๋ฒ”์œ„

  • ํšŒ์›๊ฐ€์ž…
  • ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ
  • ๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ
  • ํšŒ์› ์ •๋ณด ์กฐํšŒ
  • ๊ฐœ์ธ ์ •๋ณด ์กฐํšŒ
  • ๋งˆ์ด ํŽ˜์ด์ง€
  • ํŽซ ํŽ˜์ด์ง€
  • ๊ฒŒ์‹œํŒ(์ž์œ  ๊ฒŒ์‹œํŒ, ์ •๋ณด ๊ณต์œ )
  • ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ
  • ๋Œ“๊ธ€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ
  • ์ผ์ง€ ์ž‘์„ฑ, ์ˆ˜์ •, ์‚ญ์ œ

๐Ÿ“Œ ERD

โ›๏ธ DB ์„ค๊ณ„

MEMBER

์ด๋ฆ„ ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
ID USER_ID VARCHAR2(20) PRIMARY KEY
PW USER_PW VARCHAR2(20) NOT NULL
CHECK(8์ž ์ด์ƒ)      
์ด๋ฆ„ USER_NAME VARCHAR2(15) NOT NULL
์ด๋ฉ”์ผ EMAIL VARCHAR2(30) UNIQUE
ํ•ธ๋“œํฐ ๋ฒˆํ˜ธ PHONE CHAR(13) UNIQUE
๊ฐ€์ž… ๋‚ ์งœ JOIN_DATE   DATE DEFAULT

BOARD

์ด๋ฆ„ ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
๊ฒŒ์‹œํŒ ์ด๋ฆ„ BOARD_NAME VARCHAR2(21) PRIMARY KEY

WRITE

์ด๋ฆ„ ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
๊ธ€๋ฒˆํ˜ธ BOARD_NUM NUMBER PRIMARY KEY
๊ฒŒ์‹œํŒ ์ด๋ฆ„ BOARD_NAME VARCHAR2(21) * ์™ธ๋ž˜ ํ‚ค
์ œ๋ชฉ TITLE VARCHAR2(50) NOT NULL
๋‚ด์šฉ BODY_TEXT VARCHAR2(4000)  
๋‚ ์งœ REG_DATE DATE NOT NULL
ID USER_ID VARCHAR2(20) * ์™ธ๋ž˜ ํ‚ค

REPLY

์ด๋ฆ„ ์—ญํ•  ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
๋ฒˆํ˜ธ   REPLY_NUM NUMBER PRIMARY KEY
๋Œ“๊ธ€ ์ž‘์„ฑ   REPLY_WRITE VARCHAR2(300) NOT NULL
ID ์ž‘์„ฑํ•œ ID USER_ID VARCHAR2(20) * ์™ธ๋ž˜ ํ‚ค
๊ธ€ ๋ฒˆํ˜ธ ์–ด๋А ๊ธ€์— ๋Œ“๊ธ€ ๋‹ฌ๊ฑด์ง€ ์„ ํƒ BOARD_NUM NUMBER(3) * ์™ธ๋ž˜ ํ‚ค

PET

์ด๋ฆ„ ์—ญํ•  ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
๋ฐ˜๋ ค๋ฌ˜ ์ด๋ฆ„ ํŽ˜์ด์ง€ ๋ถ„๋ฆฌ PET_NAME VARCHAR2(20) PRIMARY KEY
์„ฑ๋ณ„ ‘M’ / ‘F’ PET_GENDER CHAR(1) CHECK (M/F)
๋ฐ˜๋ ค๋ฌ˜ ์ƒ๋…„์›”์ผ ๋ฐ˜๋ ค๋ฌ˜ ๋‚˜์ด ๊ณ„์‚ฐ PET_BDAY DATE  
์ข…๋ฅ˜   PET_SPEC VARCHAR2(30)  
ID ๋ˆ„๊ตฌ์˜ ๋ฐ˜๋ ค๋ฌ˜์ธ ์ง€ ํ™•์ธ USER_ID   * ์™ธ๋ž˜ ํ‚ค

PET_PAGE

์ด๋ฆ„ ์—ญํ•  ์ปฌ๋Ÿผ๋ช… ์ž๋ฃŒํ˜• ์ œ์•ฝ ์กฐ๊ฑด
ID ์‚ฌ์šฉ์ž ๋ณ„ ์กฐํšŒ USER_ID   * ์™ธ๋ž˜ ํ‚ค
๋ฐ˜๋ ค๋ฌ˜ ์ด๋ฆ„   PET_NAME VARCHAR2(20) * ์™ธ๋ž˜ ํ‚ค
๋‚ ์งœ   PET_DIARY DATE  
๋ฐ˜๋ ค๋ฌ˜ ์‚ฌ์ง„   PET_IMG VARCHAR2(500)  
๋ฉ”๋ชจ   PET_MEMO VARCHAR2(250)  
์‚ฐ์ฑ… Yes/No ๊ตฌ๋ถ„ PET_WALK CHAR(1) NOT NULL, CHECK (Y/N)
๋ณต์šฉ ์•ฝ ์—ฌ๋ถ€ Yes/No ๊ตฌ๋ถ„ PET_MEDI CHAR(1) NOT NULL, CHECK (Y/N)

์ด๋ฒˆ์— ์ง„ํ–‰ํ•œ ํ”„๋กœ์ ํŠธ๋Š” 'DB์„ค๊ณ„ ๋ฐ JDBC'๋กœ ๊ทธ ๋™์•ˆ ๋ฐฐ์šด Java์™€ DB(Oracle)๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ฃผ์ œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ์ •ํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์—์„œ ์ถœ๋ ฅํ•˜๊ธฐ๊ฐ€ ๊ธฐ๋ณธ ๋ชฉํ‘œ์˜€์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„์ด ์ข€ ๋‚จ์œผ๋ฉด ์›น์—์„œ๋„ ๊ตฌํ˜„ํ•ด๋ณด๋ผ๊ณ  ํ•˜์…จ๋Š”๋ฐ ์ €๋Š” ๊ผญ ์›น๊นŒ์ง€ ๊ตฌํ˜„ํ•˜๋ฆฌ๋ผ ๋งˆ์Œ์„ ๋จน๊ณ  ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๊ฐ„์€ ์ด 2.24 ~ 3.7 ์•ฝ 2์ฃผ์˜€๊ณ ,

์ €ํฌ ์กฐ๋Š” ์กฐ๊ธˆ ์—ฌ์œ ์žˆ๊ฒŒ ๋๋‚ด์„œ ๊ฒฐ๊ตญ ์›น ๊ตฌํ˜„(Thymeleaf)๊นŒ์ง€ ์ง„ํ–‰ํ•˜๊ณ  ๋งˆ๋ฌด๋ฆฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

์ฒซ ํšŒ์˜

๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•œ ์ดํ›„์—๋Š” ๋Š˜ ์ € ํ˜ผ์ž์„œ๋งŒ ์ž‘์—…ํ•˜๊ณ , ๊ณต๋ถ€ํ•˜๊ณ  ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ˆ„๊ตฐ๊ฐ€์™€ ๊ฐ™์ด ํ˜‘์—…์„ ํ•œ๋‹ค๋Š”๊ฒŒ ์ž˜ ๋  ์ˆ˜ ์žˆ์„๊นŒ? ์˜๊ฒฌ์ด ์•ˆ๋งž์œผ๋ฉด ์–ด๋–กํ•˜์ง€ ํ•˜๋Š” ๊ฑฑ์ •์ด ๊ต‰์žฅํžˆ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ œ๊ฐ€ ์กฐ์žฅ์ด ๋˜๋ฉด์„œ ์•„..์ด๊ฑด ๋‚ด๊ฐ€ ์ค‘์‹ฌ์„ ์žƒ์œผ๋ฉด ๋ถ„๋ช…ํžˆ ๋ฐฐ๊ฐ€ ์‚ฐ์œผ๋กœ ๊ฐ€๊ฒ ๊ตฌ๋‚˜๋ž€ ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์šฐ์™•์ขŒ์™• ํ•˜์ง€ ์•Š๊ณ  ์ค‘์‹ฌ์„ ์ž˜ ์žก๋Š” ๊ฒƒ์— ์ดˆ์ ์„ ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.

ํŒ€์€ ์ € ํฌํ•จ 3๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ˜บ์ฃผ์ œ ์„ ์ •

๋‹คํ–‰ํžˆ(?) ์ €ํฌ ์…‹ ๋‹ค ๊ณ ์–‘์ด๋ฅผ ์ข‹์•„ํ•ด์„œ ๊ณ ์–‘์ด ์ง‘์‚ฌ๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด๋ณด์ž!๊ฐ€ ๋์–ด์š”.

๊ฑฐ์˜ ์ผ์‚ฌ์ฒœ๋ฆฌ์—ฌ์„œ ์ฃผ์ œ๊ฐ€ ์„ ์ •๋˜์ž๋งˆ์ž ๋‹ค์Œ ๋‹จ๊ณ„๋ถ€ํ„ฐ๋Š” ์ˆ˜์›”ํ–ˆ์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž

 

DB ์„ค๊ณ„

DB ์„ค๊ณ„๋Š” ๊ฐ์ž ํŒŒํŠธ๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋‚˜๋ˆ„๊ฒŒ ๋˜์–ด์„œ ์ €๋Š” ๊ฒŒ์‹œํŒ(๊ธ€์“ฐ๊ธฐ์™€ ๋Œ“๊ธ€), ๋‹ค๋ฅธ ๋ถ„์€ ํšŒ์› ์ •๋ณด, ๋งˆ์ง€๋ง‰ ํ•œ ๋ถ„์€ ํŽซ ํŽ˜์ด์ง€์™€ ํŽซ์„ ๋งก์•„์„œ ๋น ๋ฅด๊ฒŒ ์„ค๊ณ„๊นŒ์ง€ ์™„๋ฃŒํ•˜์—ฌ ๊ทธ ๋‚ ์˜ ํšŒ์˜๋Š” ๊ทธ๋ ‡๊ฒŒ ๋งˆ๋ฌด๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

git์˜ ์ค‘์š”์„ฑ

๊ทธ ๋‹ค์Œ๋‚  ๋ถ€ํ„ฐ๋Š” ์˜ค์ „ ์ˆ˜์—…์ด ๋๋‚˜๋ฉด ๋‚˜๋จธ์ง€ ์‹œ๊ฐ„์€ ์กฐ๋ณ„๋กœ ์ž‘์—…ํ•˜๋ผ๊ณ  ํ•˜์…”์„œ ํŽธํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ์š”.

๊ทธ๋ ‡๊ฒŒ ์ž‘์—…์„ ํ•˜๋‹ค๊ฐ€ ๋ฌธ๋“ ํ˜‘์—…์„ ์œ„ํ•ด์„œ๋Š” ๊ฐ์ž์˜ ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์นจ ํ•œ ๋ถ„์ด ์˜ˆ์ „์— ํ˜‘์—…ํ•˜์…จ์„ ๋•Œ '์†Œ์ŠคํŠธ๋ฆฌ'๋ฅผ ์ด์šฉํ•ด์„œ ์‰ฝ๊ฒŒ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•˜์…จ๋‹ค๊ณ  ํ•ด์„œ

๊ทธ ๋‚ ์€ ์ž‘์—… ํ™˜๊ฒฝ ์„ธํŒ…ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๊ฑฐ์˜ ์ผ์—ˆ์Šต๋‹ˆ๋‹ค.

์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ž‘์—… ์‹œ๊ฐ„์ด ์ด‰๋ฐ•ํ•œ ์™€์ค‘์— git์— ํ•˜๋ฃจ ํˆฌ์žํ•˜๊ธธ ์ •๋ง ์ž˜ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค.

๊ฐ™์ด ๊ตฌ๊ธ€๋ง๋„ ํ•˜๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ๋„ ๊ณต๋ถ€๊ฐ€ ๋งŽ์ด ๋˜์–ด์„œ ํ˜ผ์ž ์“ธ ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ์•„์›ƒํ’‹์ด ์ข‹์•„์ง„ ๊ฒƒ์ด ๋А๊ปด์กŒ๊ฑฐ๋“ ์š”. ใ…Žใ…Ž

 

๊ทธ ์ดํ›„ ๋‹จ๊ณ„

์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ -> JDBC ๊ตฌํ˜„ -> UI ๊ตฌํ˜„ -> PPT

 

์ ˆ๋Œ€ ๊ท€์ฐฎ์•„์„œ ์ด๋ ‡๊ฒŒ ํ‘œํ˜„ํ•œ๊ฑด ์•„๋‹ˆ๊ณ 

์ง€๊ธˆ ์ž‘์„ฑํ•˜๋Š” ๊ธ€์€ ๊ธฐ์ˆ ์ ์ธ ๊ฒƒ๋ณด๋‹จ ์ œ ๊ฐœ์ธ์ ์œผ๋กœ ๋А๊ผˆ๋˜ ๊ฐ์ •์ด๋‚˜ ํ›„๊ธฐ๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•จ์ด๋‹ค ๋ณด๋‹ˆ ์ž์„ธํ•œ ์†Œ์Šค๋Š” git์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”. ๐Ÿ˜

 

์•„, PPT๋Š” ํ•œ ๋ถ„์ด ๋Œ€ํ•™๊ต ๋•Œ ์งˆ๋ฆฌ๋„๋ก ํ•ด๋ณด์…จ๋‹ค๊ณ  ํ•˜์…”์„œ ๊ทธ ๋ถ„์ด ์ •๋ฆฌ๋ฅผ ๋‹ค ํ•ด์ฃผ์…จ์–ด์š”. (๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.๐Ÿ˜‚

 

ํ›„๊ธฐ

  1. ํ˜ผ์ž ํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธํ•˜๋‹ค๋Š” ์ƒ๊ฐ์„ ๊นจ๋ถ€์…”์ค€ ๊ฒฝํ—˜์ด์—ˆ๋‹ค.
    (๊ทผ๋ฐ ์ด๊ฑด ํŒ€์›๋“ค์„ ์ž˜ ๋งŒ๋‚œ ์ œ ๋ณต์ธ๊ฐ€?๋ผ๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š” ๋ถ€๋ถ„์ด๊ธฐ๋„ ํ•œ..ใ…Žใ…Žใ…Ž)
  2. git์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.
    (pull, push, merge, fork, repositary, master, branch ...)
  3. ๋ฐ‘๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๊ฐ™์ด ๋…ผ์˜ํ•˜๊ณ  ์„ค๊ณ„ํ•˜๋‹ค๋ณด๋‹ˆ ์ž์—ฐ์Šค๋ ˆ ํ”„๋กœ๊ทธ๋žจ์— ์• ์ •์ด ์ƒ๊ธด๋‹ค.
  4. ๋Š์ž„์—†์ด ํ…Œ์ŠคํŠธ ํ•˜๋ฉฐ ๋‚˜ํƒ€๋‚˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๊ณ ์น˜๋ฉด์„œ ๋””๋ฒ„๊น…์— ๋Œ€ํ•œ ์žฌ๋ฏธ๋„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.
  5. ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด ์žฌ๋ฐŒ์—ˆ๋‹ค.

 

์–ด๋ ค์› ๋˜ ์ 

๊ธ€์—์„œ๋Š” ๋ญ ์ˆ˜์›”ํ•˜๊ฒŒ ๋๋‹ค, ๋น ๋ฅด๊ฒŒ ๋๋‹ค ๋ผ๊ณ  ๊ณ„์† ์ผ์ง€๋งŒ ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ์–ด๋ ค์›€์ด ํ•˜๋‚˜๋„ ์—†์—ˆ๋˜ ๊ฒƒ์€ ์•„๋‹ˆ์—์š”.

์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ์ƒ๊ฐ๋Œ€๋กœ ์ž‘๋™์ด ์•ˆ๋  ๋•Œ๋Š” ๊ตฌ๊ธ€๋ง ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๊ฑฐ์˜ ์Ÿ๊ธฐ๋„ ํ–ˆ์Šต๋‹ˆ. ํฌํ‚„ใ…‹

 

๊ทธ ์ค‘์— ๊ธฐ์–ต๋‚˜๋Š” ๊ฒƒ์€...

'๊ฒŒ์‹œ๊ธ€ ์„ ํƒ'์‹œ [๊ธ€์“ฐ๊ธฐ ํ…Œ์ด๋ธ”]๊ณผ [๋Œ“๊ธ€ ํ…Œ์ด๋ธ”]์„ JOINํ•˜์—ฌ ๋Œ“๊ธ€์ด ์—†์œผ๋ฉด ๋Œ“๊ธ€ ์ œ์™ธํ•˜๊ณ  ๋ณด์—ฌ์ฃผ๊ณ ,

๋Œ“๊ธ€์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๊นŒ์ง€ ํฌํ•จํ•˜์—ฌ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์„ ๊ผฝ์„ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š”.

 

๋ฌผ๋ก  ํ”„๋ก ํŠธ์—”๋“œ์—์„œ UI๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ์• ๋จน์ง„ ์•Š์•˜์„ ๊ฒƒ ๊ฐ™์€๋ฐ..

ํ„ฐ๋ฏธ๋„์—์„œ ์ถœ๋ ฅ ํ•˜๋‹ค๋ณด๋‹ˆ ์˜ ๋ณด๊ธฐ๋„ ๋ถˆํŽธํ•˜๊ณ  ์˜›๋‚  PC ํ†ต์‹  ์‹œ์ ˆ ์ปดํ“จํ„ฐ๋ฅผ ์“ฐ๋Š” ๊ธฐ๋ถ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ใ…Žใ…Žใ…Ž

 

์ง€๋‚˜๊ณ  ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋ณ„ ๊ฒƒ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ์ฒ˜์Œ์— ๋Œ“๊ธ€์ด ์—†๋Š” ๊ฒŒ์‹œ๊ธ€์ด ์กฐํšŒ๊ฐ€ ์•ˆ ๋  ๋•Œ ๋‹นํ™ฉํ–ˆ๋˜..

 

์•„ ๋˜ ํ•˜๋‚˜!

JOIN ์ฟผ๋ฆฌ๋ฌธ์„ ์ด์šฉํ•  ๋•Œ..

SELECT W.BOARD_NUM, W.USER_ID, TITLE, BODY_TEXT, R.USER_ID, REPLY_WRITE
	FROM WRITE W, REPLY R
	WHERE W.BOARD_NUM = R.BOARD_NUM
	AND W.BOARD_NUM = [๊ธ€๋ฒˆํ˜ธ];

์œ„ ์ฟผ๋ฆฌ๋ฌธ์„ JAVA์— ๋„˜๊ธธ ๋•Œ

String rUserId = rs.getString("R.USER_ID");

์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ๊นŒ ๊ณ„์† '๋ถ€์ ํ•ฉํ•œ ์—ด ์ด๋ฆ„' ์˜ค๋ฅ˜๊ฐ€ ๋– ์„œ ์•„..JOIN์€ ์•ˆ๋„˜์–ด๊ฐ€๋‚˜?๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ

String rUserId = rs.getString("USER_ID");

๋ผ๊ณ  ํ•˜๊ณ  ๊ทธ๋ƒฅ ๋„˜๊ฒผ๋‹ค๊ฐ€ ๋Œ“๊ธ€ ์ž‘์„ฑ์ž ID๋ž‘ ๊ธ€ ์ž‘์„ฑ์ž ID๊ฐ€ ๊ฐ™์œผ๋ฉด ํฐ์ผ๋‚˜๋‹ˆ๊นŒ ๋‹ค์‹œ ๊ณ ์ณค์Šต๋‹ˆ๋‹ค. ใ…Žใ…Ž

AS ๋ณ„์นญ์œผ๋กœ ์žฌ์ •์˜ ํ•œ ๋’ค ๋„˜๊ธฐ๋‹ˆ๊นŒ ์ž˜ ๋– ์„œ ๋ณ„๊ฑฐ ์•„๋‹ˆ์—ˆ์ง€๋งŒ ๋ฟŒ๋“ฏํ–ˆ๋˜ ๊ธฐ์–ต์ด ๋‚ฉ๋‹ˆ๋‹ค.

SELECT W.BOARD_NUM, W.USER_ID, TITLE, BODY_TEXT, R.USER_ID AS R_USER_ID, REPLY_WRITE
	FROM WRITE W, REPLY R
	WHERE W.BOARD_NUM = R.BOARD_NUM
	AND W.BOARD_NUM = [๊ธ€๋ฒˆํ˜ธ];
String rUserId = rs.getString("R_USER_ID");

๊ฐœ์„ ํ•  ์ (?)

์กฐ๊ธˆ ๋” ์„ค๊ณ„์— ๋งŽ์€ ์‹œ๊ฐ„์„ ๋“ค์—ฌ์„œ ๊ธฐ์ดˆ๊ณต์‚ฌ๋ฅผ ํŠผํŠผํžˆ ํ•œ ๋’ค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ชฝ์œผ๋กœ ์ง„ํ–‰

์˜ˆ) ๋ฉ”๋‰ด ๊ตฌ์„ฑ๋„(๋ฉ”๋‰ด ํŠธ๋ฆฌ), UI ๋ ˆ์ด์•„์›ƒ ์žก๊ธฐ

 

์ด๋ฒˆ์—๋Š” ์„ค๊ณ„๋ถ€ํ„ฐ ๋กœ์ง๊นŒ์ง€ ๊ธ€๋กœ ์จ์„œ ์†Œํ†ตํ•˜๋‹ค๋ณด๋‹ˆ

๋ฉ”๋‰ด ์„ ํƒํ•  ๋•Œ ์–ด๋””๋กœ ์ด๋™๋˜๋Š”์ง€๊ฐ€ ํ—ท๊ฐˆ๋ ค์„œ ๊ตฌ์กฐ ์žก์„ ๋•Œ ํ—ค๋งธ๋˜... ๐Ÿ˜‚

 

์ •๋ฆฌํ•˜๋ฉฐ

์ด ์™ธ์—๋„ NullPointerException์ด๋‚˜ ์กฐํšŒ๊ฐ€ ์•ˆ๋œ๋‹ค๊ฑฐ๋‚˜ git ์ถฉ๋Œ ... ๋“ฑ๋“ฑ ์–ด๋ ค์›€์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ๋Š˜ ์›ƒ์œผ๋ฉฐ ๋„์™€์ฃผ์‹  ๊ฐ•์‚ฌ๋‹˜๊ณผ

๊ฐ™์ด ๋””๋ฒ„๊น…ํ•˜๊ณ , ์ž‘์—…ํ•˜๋ฉฐ ํ˜‘์—…์˜ ์ค‘์š”์„ฑ์„ ๊นจ๋‹ซ๊ฒŒ ํ•ด์ค€ ์šฐ๋ฆฌ ์กฐ์›๋ถ„๋“ค์—๊ฒŒ ๋ฌดํ•œํ•œ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•ฉ๋‹ˆ๋‹ค.

 

๋‚ด์ผ ๋ฐœํ‘œ๊นŒ์ง€ ๋งˆ๋ฌด๋ฆฌ ํ™”์ดํŒ…!

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!