์ฌํ์ ์ ๋ณด๋ฅผ ์ป์ด๊ฐ๊ณ ์ ๋ณด์ ๋ํ ์ํต์ด ๊ฐ๋ฅํ ๋ธ๋ก๊ทธ NomadLog!
์ข์๋ ์ฌํ์ง์ ๋ํ ๊ธฐ๋ก์ ํ๊ณ ,
์ฌํํ ์ง์ญ์ ๋ํ ์ ๋ณด๋ฅผ ์ด๋ฏธ ๋ค๋ ์จ ๊ฒฝํ์์๊ฒ ์ ์๋ฐ์ผ๋ฉด์
๋ค์ํ ์ฌ๋๋ค๊ณผ ํจ๊ป ์ฑํ ํ๋ฉฐ ์ ๋ณด๋ฅผ ๊ณต์ ํด๋ด์ :)
12/18/23~01/17/24์ํํธ์จ์ด ์ํคํ ์ณ
์์ฑ์ (์ด ํ๋ซํผ์ ์ด์ฉํ๋ ์ฌ์ฉ์)
- ๊ณ์ ๊ด๋ฆฌ: ํ์๊ฐ์ ์ ํตํด ํ๋ซํผ ์ฌ์ฉ ๊ฐ๋ฅ. ํ์ ์ ๋ณด ์์ ๊ฐ๋ฅ. ํ์ ํํด ๊ฐ๋ฅ.
- ์นดํ ๊ณ ๋ฆฌ ๋ฐ ํ๊ทธ ๊ด๋ฆฌ: ์นดํ ๊ณ ๋ฆฌ๋ช ์ ์ ๋ฆฌํ๊ณ ์ค์ ๊ฐ๋ฅ. ๊ฒ์๊ธ์ ๋๋ผ๋ณ ํ๊ทธ ์ค์ ๊ฐ๋ฅ. ์ฌํ ์คํ์ผ์ ๊ฒ์๊ธ์ ๊ธฐ๋ก ๊ฐ๋ฅ.
- ๊ฒ์๊ธ ๋ฐ ๋๊ธ ๊ด๋ฆฌ: ๊ฒ์๊ธ ์์ฑ, ์์ , ์ญ์ ๊ฐ๋ฅ. ๋๊ธ ์์ฑ, ์ญ์ , ์์ ๊ฐ๋ฅ. ๋๊ธ ์์ฑ์์ ๋ํ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ. ๊ฒ์๊ธ ์์ฑ ์๊ฐ ํ์ธ ๊ฐ๋ฅ.
- ํ์ด์ง ๋ฐ ๋ ์ด์์: ํ์ด์ง ๋๋ฒ ๋๋ ๋ฌดํ ์คํฌ๋กค๋ก ๊ฒ์๊ธ ํ์. ํ ํ์ด์ง์ ํ์๋๋ ๊ฒ์๊ธ ์ ์ค์ ๊ฐ๋ฅ. ๋ชฉ๋ก์ผ๋ก ๋์๊ฐ๋ ๋ฒํผ ์ ๊ณต.
- ๊ฒ์๊ธ ์์ฑ ๋ฐ ๊ธฐ๋ฅ: ์์ ์ ์ฅ ๊ธฐ๋ฅ์ ๋ฏธ๊ตฌํ. ๊ธ์จ์ฒด ๋ฐ ํฌ๊ธฐ ์ ํ ๊ธฐ๋ฅ์ ๋ฏธ๊ตฌํ. ์ด๋ฏธ์ง ํ์ผ ์ฒจ๋ถ ๊ฐ๋ฅ. ์กฐํ์ ํ์ธ ๊ฐ๋ฅ. ์ข์์ ๋ฒํผ์ ํตํด ๊ฒ์๊ธ ์ข์์ ๊ฐ๋ฅ.
๋ทฐ์ด (์ด ํ๋ซํผ์ ์ด์ฉํ๋ ๋ฐฉ๋ฌธ์)
- ๊ฒ์๊ธ ๋ฐ ๋๊ธ ๊ธฐ๋ฅ: ๊ฒ์๊ธ ๋ฐ ๋๊ธ์ ์ข์์๋ฅผ ๋๋ฅผ ์ ์์. ๋๊ธ ์์ฑ ๊ฐ๋ฅ. ๋๊ธ ์ญ์ ๋ฐ ์์ ๊ฐ๋ฅ. ๊ฒ์๊ธ์ ๋๊ธ์ด ์ญ์ ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ์ธ ๊ฐ๋ฅ.
- ๊ฒ์ ๋ฐ ๋ทฐ์ด ํ๋ฉด: ๊ฒ์์ ํตํด ์ํ๋ ๊ฒ์๋ฌผ์ ์ฐพ์ ์ ์์. ๋ฉ์ธํ์ด์ง์์ ํ๊ทธ๋ณ๋ก ์ ํํ์ฌ ๋ณด์ฌ์ค ์ ์์. ๋๋ผ/์ง์ญ ๊ฒ์ ๊ฐ๋ฅ. ํ๋กํ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ.
- ์ข์์ ๋ฐ ๋ทฐ์ด ํ๋: ์ข์์๋ฅผ ๋๋ฅผ ์ ์์. ์ข์์๋ฅผ ๋๋ฅธ ๊ฒ์๊ธ๋ค์ ๋ชจ์ ๋ณผ ์ ์์.
- ๋๊ธ ๊ธฐ๋ฅ: ๋๊ธ์ ์ ๋ ฅ ๊ฐ๋ฅ. ๋๊ธ ์ญ์ ๊ฐ๋ฅ. ๋๊ธ ์์ ๊ฐ๋ฅ.
- ํ๋กํ ์ ๋ณด: ์ฌ์ฉ์ ํ๋กํ ์ ๋ณด ํ์ธ ๊ฐ๋ฅ.
์ ์ (member) ํ ์ด๋ธ ์์ฑ
CREATE TABLE `userstbl` (
`member_code` INT(11) NOT NULL AUTO_INCREMENT,
`member_id` VARCHAR(15) NOT NULL COLLATE 'utf8mb4_general_ci',
`member_password` VARCHAR(15) NOT NULL COLLATE 'utf8mb4_general_ci',
`member_name` VARCHAR(10) NOT NULL COLLATE 'utf8mb4_general_ci',
`member_email` VARCHAR(30) NOT NULL COLLATE 'utf8mb4_general_ci',
`member_age` INT(11) NOT NULL,
PRIMARY KEY (`member_code`) USING BTREE,
UNIQUE INDEX `member_id` (`member_id`) USING BTREE,
UNIQUE INDEX `member_email` (`member_email`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=52
;
๊ฒ์๋ฌผ ํ ์ด๋ธ ์์ฑ
CREATE TABLE `bbs` (
`bbs_id` INT(50) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NULL DEFAULT 'bbs' COLLATE 'utf8mb4_general_ci',
`contents` VARCHAR(1000) NOT NULL COLLATE 'utf8mb4_general_ci',
`created_at` TIMESTAMP NULL DEFAULT current_timestamp(),
`modify_at` TIMESTAMP NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`view_cnt` INT(50) NULL DEFAULT '0',
`like_cnt` INT(11) NULL DEFAULT '0',
`hashtag_id` INT(11) NULL DEFAULT '0',
`is_deleted` TINYINT(1) NULL DEFAULT '0',
`member_code` INT(11) NULL DEFAULT '0',
`country_id` INT(11) NULL DEFAULT '1',
PRIMARY KEY (`bbs_id`) USING BTREE,
INDEX `country_id` (`country_id`) USING BTREE,
CONSTRAINT `country_id` FOREIGN KEY (`country_id`) REFERENCES
`countries` (`country_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=174
;
๋๊ธ ํ ์ด๋ธ ์์ฑ
CREATE TABLE `comment` (
`comment_id` INT(50) NOT NULL AUTO_INCREMENT,
`bbs_id` INT(50) NOT NULL DEFAULT '0',
`content` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`writer` VARCHAR(50) NOT NULL DEFAULT '0' COLLATE 'utf8mb4_general_ci',
`reg_date` TIMESTAMP NULL DEFAULT NULL,
`modify_date` TIMESTAMP NULL DEFAULT NULL,
PRIMARY KEY (`comment_id`) USING BTREE,
INDEX `bbs_id` (`bbs_id`) USING BTREE,
CONSTRAINT `bbs` FOREIGN KEY (`bbs_id`) REFERENCES
`bbs` (`bbs_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=94
;
๊ตญ๊ฐ ํ ์ด๋ธ ์์ฑ
CREATE TABLE `countries` (
`country_id` INT(50) NOT NULL AUTO_INCREMENT,
`country_name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
`continent_name` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_general_ci',
PRIMARY KEY (`country_id`) USING BTREE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=250
;
Hashtag ํ ์ด๋ธ ์์ฑ
CREATE TABLE `hashtag` (
`hashtag_id` INT(11) NOT NULL AUTO_INCREMENT,
`bbs_id` INT(11) NULL DEFAULT NULL,
`content` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb3_bin',
PRIMARY KEY (`hashtag_id`) USING BTREE,
INDEX `bbs_id` (`bbs_id`) USING BTREE,
CONSTRAINT `bbs_id` FOREIGN KEY (`bbs_id`) REFERENCES
`bbs` (`bbs_id`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=109
;
C:.
โโ.idea
โโ.mvn
โ โโwrapper
โโsrc
โโmain
โโjava
โ โโcom
โ โโencore
โ โโbbs
โ โโboard
โ โ โโcontroller
โ โ โโdto
โ โ โโmapper
โ โ โโservice
โ โโchat
โ โ โโconfig
โ โ โโcontroller
โ โ โโmodel
โ โ โโrepository
โ โ โโservice
โ โโcomment
โ โ โโcontroller
โ โ โโdto
โ โ โโmapper
โ โ โโservice
โ โโconfig
โ โโmember
โ โโcontroller
โ โโdto
โ โโhandler
โ โโmapper
โ โโservice
โโresources
โโmapper
โโstatic
โ โโcss
โ โโimages
โ โ โโmain
โ โโjs
โโtemplates
โโbbs
โโchat
โโcommon
โ โโfragments
โ โโlayout
โโmember
- ํ์์ ๋ณด ๊ด๋ฆฌ์ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ, ๊ฒ์๊ธ ์ ๊ทผ ๊ถํ์ ์ค์
-
๊ฒ์๊ธ ๋ฆฌ์คํธ๋ฅผ ๊ตฌ์ฑํด ์ฌ๋ฌ ์ ๋ณด๋ฅผ ํ์ธ
๊ฒ์๊ธ ๊ธ์ฐ๊ธฐ๋ฅผ ๋น๋กฏํด ์์ , ์ญ์ ๊ฐ๋ฅ - ์ํ๋ ๊ฒ์๊ธ์ ๋ค์ด๊ฐ ๋๊ธ ์์ฑ ์ญ์ ๊ฐ๋ฅ
-
Country : ๊ฒ์๊ธ ๋ด์ ์์ ์ด ๋ค๋
์จ ์ฌํ ๊ตญ๊ฐ ์ ํ ์, ๋๋ฅ๊ณผ ํจ๊ป ์ ๋ณด ์ ์ฅํ๊ธฐ
HashTag : ์์ ์ ๊ฒ์๊ธ์ ๋ค์ํ ํค์๋๋ก ๋ณธ์ธ์ ๊ฒ์๊ธ ํํํ๊ธฐ - ์ํ๋ ๊ฒ์๊ธ์ ๋ค์ด๊ฐ์ ์ฌ๋ฌ์ฌ๋๊ณผ ๋ํ ๊ฐ๋ฅํ๋๋ก ์ฑํ ๋ฐฉ ์์ฑ
nomad.mp4
-.Clipchamp.mp4
๊ธฐ๋ฅ | ๋ด์ฉ |
---|---|
์์ด๋ ์์ฑ | ์์ด๋ ์์ด๋ก๋ง ์์ฑ๊ฐ๋ฅ ์ค์ ๊ฑด |
๊ฒ์๊ธ | ๊ฒ์๊ธ DB์์ ๊ฒ์๊ธ ๋ฒํธ ์ฆ๊ฐ ๊ด๋ จ ๊ฑด |
TDD | ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ํตํ ์ฝ๋ ์์ฑ ๊ฑด |
-
๐ฆ์ด๋ํ : ๊ฒ์ํ์ด๋ผ๊ณ ํด์ ์ฝ๊ฒ ๋ดค๋ค๊ฐ ํฐ ์ฝ ๋ค์น๋ค๋ ์๊ฐ์ ํ์๋ค. ๊ฐ๋จํ CRUD๋ฅผ ์ฝ๋๋ก ๊ตฌํํ๋ ์ ๋ ์ด๋ ๊ฒ ์ด๋ ต๊ตฌ๋๋ผ๋ ์๊ฐ์ ํ๊ฒ ๋์๋ค. ํ์ฅ์ด๋ผ๋ ๋ถ๋ด๊ฐ์ด ์์๋ ํ์ผ๊น, ์ ์ฒด๋ฅผ ์ฝ์ผ๋ ค๊ณ ๋ง์ ๋ ธ๋ ฅ์ ํ์๋ค ๋๋ถ์ ์ง์ ๋ฟ๋ง ์๋๋ผ ํ๋ก์ ํธ์ ๋ํ ์ ๋ฐ์ ์ธ ๊ณต๋ถ๋ ๋ง์ด ๋์๋ค. ๋ถ์กฑํ ์ ์ด ๋ง์ง๋ง, ๋ค์์ ์ํ ๋๋ค๋ฐ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์์ผ๋ก๋ ์ด์ฌํ ํด์ผ๊ฒ ๋ค.
-
๐์ด๊ฒฝ๋ฏผ : ํ๋ฌ์ ๊ฐ๊น์ด ๊ธด ํํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์, ์์ด๋์ด ๋์ถ๋ถํฐ DB ์ค๊ณ, ํ ์ด๋ธ ์ ์, ๊ธฐ๋ฅ ์ฝ๋ ๊ตฌํ, ์ฝ๋ ๋ณํฉ, ์๋ฌ ์์ , ์ ์ฒด ์ฝ๋ ์ดํด ๋ฐ ๋ฐํ๊น์ง ์ํด๋ณธ ํํธ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ๊ธฐ์ ์ ์ธ ์ธก๋ฉด๋ฟ๋ง ์๋๋ผ ์ ์ฒด๋ฅผ ๋ณด๋ ์์ผ๋ ๋์ด์ง ์ ์์๋ ํ ํ๋ก์ ํธ์๊ธฐ์ ๋ง์กฑ์ค๋ฝ๊ณ , ๋ค์ ํ๋ก์ ํธ์์๋ MSA์ ๋ณด์๊น์ง ๊ณ ๋ คํด ์ ์ํด๋ณด๊ณ ์ถ๋ค.
-
๐๋ฐ๋ฏผ์ฑ :์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ํ์๋ค๊ฐ์ ์ํต๊ณผ ๋ฌธ์ํ์ ์ค์์ฑ์ ๋ํด ์๊ฒ ๋์๋ค. ํ์๋ ๊ตฌ๋๋ก ๊ฒฐ์ ํ ์ฌํญ์ด ๊ฐ์ธ๋ง๋ค ๋ค๋ฅด๊ฒ ์ธ์ํ๊ณ ์์ ๊ฒฝ์ฐ๋ ์์๊ธฐ์ ์์ธํ๊ณ ์ ํํ๊ฒ ๋ฌธ์ํ์์ผ์ผ ํ๋ค๋๊ฒ์ ์๊ฒ๋์๋ค. ์ฐ๋ฆฌ ํ์ ํ๋ก์ ํธ๋ฅผ 3์ฃผ์ ๋ถํฐ ๊ธฐํํ๊ณ ํ์๋ค๋ผ๋ฆฌ ๊ณต๋ถํ๋ฉฐ ์งํํ์๋๋ฐ, ๋งค์ผ ์์ ์ด ๋๋ํ 8์๊น์ง ๋จ์์ ๋ชจ๋ฅด๋๊ฒ์ ์๋ก ๋ฌผ์ด๊ฐ๋ณด๋ฉฐ ๊ณต๋ถ๋ฅผ ํ ์ ์ด ๊ต์ฅํ ๋์์ด ๋ง์ด ๋์๋ค. ์ด๋๋ถ์ ํ๋ก์ ํธ ์งํ์ ํ์ํ ์ญ๋์ ํค์ธ ์ ์์๋ค. ๋จ์ํ ์๋ฐ์ ์คํ๋ง์ ์ดํด๋ ๋ฟ๋ง ์๋๋ผ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋ฐฉ๋ฒ, ์์ด๋์ด๋ฅผ ์ ์ํ๊ณ ํ๋ก์ ํธ๋ฅผ ๊ธฐํํ๋ ๋ฐฉ๋ฒ, ๊น ํ์๊ด๋ฆฌ๋ฒ, ํ์๋ค๊ณผ ์ํต์ ํ๋ ๋ฐฉ๋ฒ ๋ฑ ์ ์ฒด์ ์ธ ํ๋ก์ ํธ๋ฅผ ์งํํ ๋ ๊ต์ฅํ ์ค์ํ๋ค๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๊ฐํ๋ ๋ถ๋ถ์ ๋ง์ ๋์์ด ๋์๋ค. ์์ฌ์ด์ ๋ค๋ ๋ถ๋ช ํ ์กด์ฌํ์ง๋ง, ๋ง์กฑํ๋ ํ๋ก์ ํธ์ด๊ณ ๋ค์ ํ๋ก์ ํธ์๋ ์์ฌ์ ๋ค๊ณ ์๊ฐํ ์ ๋ค์ ๋ณด์ํ์ฌ ๋ ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
-
๐ฐ๋ฐ์ฌ๋ฆฐ : ํ ๊ตฌ์ฑ ์ดํ๋ถํฐ ์ง๊ธ๊น์ง ํ์๋ค๊ณผ ํจ๊ป ์์ด๋์ด ๊ธฐํ, DB์ค๊ณ, ์๋น์ค๋ณ ๊ธฐ๋ฅ ์ฝ๋ ์์ฑ ๋ฐ ๋ณํฉ ๋ฑ์ ๋ชจ๋ ๊ณผ์ ์ ์งํํ๋ฉด์ ๊ฐ์ธ์ ์ผ๋ก ๋ง์ด ์ฑ์ฅ ํ ์ ์์๊ณ , ํ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ง์ด ์๊ฐํ๋ ๊ณ๊ธฐ๊ฐ ๋์๋ค. ์๋ก ๋ถ๋ดํ๋ ๊ธฐ๋ฅ์ ์ฝ๋๋ฅผ ํ๋๋ก ๋ณํฉํ๋ ๊ณผ์ ์์ ์ค๋ฅ๊ฐ ์๊ธฐ๊ธฐ๋ ํ์ง๋ง ํ์๋ค๋ผ๋ฆฌ ๋งค์ผ ๋จธ๋ฆฌ๋ฅผ ๋ง๋๊ณ ๊ณ ๋ฏผํ๋ฉด์ ํจ๊ป ์ฝ๋๋ฅผ ์์ ํ์ฌ ๋ง๊ฐ ๊ธฐํ๋ณด๋ค ์ผ์ฐ ์ฑ๊ณต์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํด๋ผ ์ ์์๋ค. ๋ชจ๋ ํ์๋ค์๊ฒ ๊ทธ๋์ ์ ๋ง ๊ณ ์ํ๋ค๊ณ ์ ํ๊ณ ์ถ๋ค.
-
๐ฅ๊ณ ๋ผํฌ : ์ด๋ฒ ํ๋ก์ ํธ๋ฅผ ์ํด ํ ์ ์ฒด๊ฐ 3์ฃผ ์ ๋ถํฐ ์ ๊ทน์ ์ผ๋ก ๊ณต๋ถ์ ์ฐธ์ฌํ์ต๋๋ค. ํ์๋ค๋ผ๋ฆฌ ๊ณตํต์ ๋ชฉํ๋ฅผ ๊ฐ๊ณ ์๋ก ๋์์ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ํ์ตํ๋ ๊ณผ์ ์ด ๋งค์ฐ ์ ์ตํ ์๊ฐ์ด์์ต๋๋ค. ํ๋ก์ ํธ์ ๊ธฐํ๋ถํฐ DB ํ ์ด๋ธ ์ค๊ณ, Git ํ์ฉ, ๋น์ฆ๋์ค ๋ก์ง ๋ฑ ๋ค์ํ ์์ญ์์ ํ์ตํ๊ณ ์ ์ฉํ๋ ๊ณผ์ ์ ํตํด ์๋ฐ์ ์คํ๋ง์ ๋ํ ์ค์ ๊ฒฝํ์ ์์ ์ ์์์ต๋๋ค. ํ์ตํ๊ณ ์ ์ฉํ๋ฉฐ ๋ฐ์ ํ๋ ๊ณผ์ ์์ ์ฌ๋ฌ ๊ฐ์ง ์ํ์ฐฉ์ค๋ค์ด ์์์ง๋ง, ํ์๋ค๊ณผ์ ํ์ ์ ํตํด ์ฑ๊ณต์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋ฌด๋ฆฌํ ์ ์์์ต๋๋ค. ๊ฐ์ธ์ ์ผ๋ก๋ ํ๋ก์ ํธ ์งํ ์ค ์์ฌ์ ๋ ๋ถ๋ถ๋ค์ ๋ณด์ํ์ฌ, ์์ผ๋ก ๋ ๋ง์ ํ์ต์ ํตํด ๊ฐ์ ํด๋ด์ด๊ฐ ์์ ์ ๋๋ค.