Skip to content

kimunz/utzza-web-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

74 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Utzza : ์›ƒ์งœ๐Ÿ˜„

๐Ÿ‘ค ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ
๐Ÿ“† 2022.04 - 2022.09 

๐Ÿ’ซ ์งค๋ฐฉ ๋ชจ์Œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

์งค๋ฐฉ ๋˜๋Š” ์งค์€ ์ด๋ฏธ์ง€ ํ˜•ํƒœ๋กœ ๋œ Meme์œผ๋กœ ์ธํ„ฐ๋„ท ์ƒ์˜ ์ด๋ฏธ์ง€๋‚˜ ์›€์ง์ด๋Š” Gif ํŒŒ์ผ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์›ƒ์งœ๋Š” ์งค์„ ํ‚ค์›Œ๋“œ๋ณ„๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํŽธ๋ฆฌํ•˜๊ฒŒ ์กฐํšŒ ยท ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž…๋‹ˆ๋‹ค.
10-20๋Œ€๋“ค์ด ์ธํ„ฐ๋„ท ์ปค๋ฎค๋‹ˆํ‹ฐ๋‚˜ SNS์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์งค์„ ํ•œ ๊ณณ์— ๋ชจ์•„
ํ•„์š”ํ•  ๋•Œ ์ƒํ™ฉ์— ๋งž๋Š” ์งค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค.


๐Ÿ”— Utzza

๐Ÿ”ง ์‚ฌ์šฉ ๊ธฐ์ˆ 

  • Front-end

  • Back-end

  • DB

  • Server & Storage



โš™ ๊ตฌํ˜„ ๊ธฐ๋Šฅ

1. ๋ฉ”์ธ ํŽ˜์ด์ง€

  • ์กฐํšŒ์ˆ˜๊ฐ€ ๋งŽ์€ ์ˆœ์„œ๋Œ€๋กœ ์งค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฐ ์งค์—๋Š” ํ‚ค์›Œ๋“œ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ์–ด ๊ฐ™์€ ํ‚ค์›Œ๋“œ์˜ ์งค ๋ฆฌ์ŠคํŠธ๋กœ ์‰ฝ๊ฒŒ ์ด๋™์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋” ๋งŽ์€ ์งค์„ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


2. ํšŒ์› ๊ด€๋ฆฌ

  • ํšŒ์›๊ฐ€์ž… ๋ฐ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ ์‹œ ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๋ฉด ์„ธ์…˜์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „๊นŒ์ง€ ๋กœ๊ทธ์ธ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋งˆ์ดํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธํ•œ ํšŒ์›์—๊ฒŒ๋งŒ ์ž์œ ๊ฒŒ์‹œํŒ์— ๊ธ€๊ณผ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • Spring Security๋ฅผ ํ†ตํ•ด ํšŒ์› ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.

3. ์ด๋ฏธ์ง€ ์กฐํšŒ

  • ์ƒ๋‹จ์˜ ๊ฒ€์ƒ‰์ฐฝ์— ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์›ํ•˜๋Š” ์งค์„ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…Œ๋งˆ๋ณ„ ์งค, ์ƒํ™ฉ๋ณ„ ์งค ๋ฉ”๋‰ด๋ฅผ ํ†ตํ•ด์„œ ํ•ญ๋ชฉ๋ณ„๋กœ ๋ถ„๋ฅ˜๋˜์–ด์žˆ๋Š” ์งค์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ์ด๋ฏธ์ง€ ์ €์žฅ

  • ์งค์„ ํด๋ฆญํ•˜๋ฉด ์ด๋ฏธ์ง€์˜ ์›๋ณธ๊ณผ ํ‚ค์›Œ๋“œ ์ „์ฒด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€ ํ•˜๋‹จ์˜ ์ €์žฅ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ๋‚˜์˜ PC์— ์งค์„ ์‰ฝ๊ฒŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5. ์ด๋ฏธ์ง€ ๋“ฑ๋ก

  • ๋“ฑ๋กํ•˜๊ณ ์ž ํ•˜๋Š” ์งค์„ ์ฒจ๋ถ€ํ•˜๊ณ  ๊ทธ์— ๋งž๋Š” ๋ถ„๋ฅ˜ํ•ญ๋ชฉ๊ณผ ํ‚ค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์งค์„ ์ง์ ‘ ๋“ฑ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

6. ๊ฒŒ์‹œํŒ

  • ๊ด€๋ฆฌ์ž๋งŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์ง€์‚ฌํ•ญ ๊ฒŒ์‹œํŒ๊ณผ ํšŒ์›๋“ค์ด ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ž์œ ๊ฒŒ์‹œํŒ์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ์ ์œผ๋กœ CRUD๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒŒ์‹œํŒ์œผ๋กœ ์ž์œ ๊ฒŒ์‹œํŒ์€ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ—ƒ ERD ์„ค๊ณ„


๐Ÿ’ฆ ์–ด๋ ค์› ๋˜ ์ 

  • ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์งค์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋น„๋™๊ธฐ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ•˜์—ฌ view๋‹จ์— ๊ฐ’์„ ๋„˜๊ฒจ์ฃผ๋Š” ๊ฒƒ์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€ ๋ฆฌ์ŠคํŠธ์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ๊ฐ ๊ฐ์ฒด์˜ ํ˜•ํƒœ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ  ๊ทธ ๊ฐ์ฒด ๋‚ด์—๋Š” ๋ฐฐ์—ด ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๊ตฌ์กฐ๊ฐ€ ๋ณต์žกํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด JSONArray์™€ JSONObject๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›ํ•˜๋Š” json ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์—ˆ๊ณ , view๋‹จ์—์„œ๋Š” ajax์˜ each ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ๋ฟŒ๋ ค์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
@ResponseBody
@GetMapping("โ€ฆ")
public String moreList(โ€ฆ) {
    โ€ฆ
    JSONArray jary = new JSONArray();
    if (list.isEmpty()) {
        jary.put("none");
    } else {
        for (Image img : list) {
            JSONObject json = new JSONObject();
            JSONArray titleArr = new JSONArray();
            for (String t : img.getTitle()) {
                titleArr.put(t);
            }
            json.put("id", img.getId());
            json.put("title", titleArr);
            json.put("imgPath", img.getImgPath());
            json.put("hit", img.getHit());
            jary.put(json);
        }
    }
    return jary.toString();
}

โœ ๋ฐฐ์šด ์  & ์•„์‰ฌ์šด ์ 

  • DB, Server, ํ™”๋ฉด์„ ํฌํ•จํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ํ˜ผ์ž์„œ ๊ฐœ๋ฐœํ•˜๋ฉฐ ์–ด๋ ค์›€์ด ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ๊ณผ์ •์—์„œ ๊ฐ๊ฐ์˜ ์—ญํ• ์ด๋‚˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์ฒด์ ์ธ ์‚ฌ์ดํด์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์ข‹์€ ๊ฒฝํ—˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์ด๋ฏธ์ง€์— ๋“ฑ๋ก๋˜์–ด์žˆ๋Š” ํ‚ค์›Œ๋“œ๋กœ๋งŒ ๊ฒ€์ƒ‰์„ ํ•ด์•ผ ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋‚˜์˜ค๋Š” ์ ์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰์–ด ์ถ”์ฒœ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒ€์ƒ‰์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ฑฐ๋‚˜ ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜์˜ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜์—ฌ ์ฒด๊ณ„์ ์ธ ์ด๋ฏธ์ง€ ๊ฒ€์ƒ‰์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ฐœ๋ฐœํ•˜๋ฉด ๋” ์ข‹์€ ์„œ๋น„์Šค๊ฐ€ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

About

Utzza : ์›ƒ์งœ๐Ÿ˜„

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published