전체 · 249

  1. 2026
  2. 6월
  3. 06.16JT Music - Join Us For A Bite
  4. 06.15aespa - 'Til We Die
  5. 06.15MEOVV - Favorite Song
  6. 4월
  7. 04.19REBEL HEART
  8. 1월
  9. 01.20e ∈ F
  10. 01.20기술개발 진행상황 공유 2
  11. 01.20기술개발 진행상황 공유 3
  12. 01.20기술개발 진행상황 공유 1
  13. 01.16『실패를 통과하는 일』
  14. 01.15항저우
  15. 2025
  16. 12월
  17. 12.12Kittyy & The Class - I'm Not Remarkable
  18. 10월
  19. 10.26『싯다르타』
  20. 10.24어제까지의 이야기
  21. 10.24The killers - Shot At the night
  22. 10.20『학문의 즐거움』
  23. 10.12심통봇 - GHOSTagram
  24. 10.09돈 벌기
  25. 9월
  26. 09.13My Chemical Romance - Welcome To The Black Parade
  27. 09.10TUBE - The Season In The Sun
  28. 09.02PERFECT BLUE
  29. 8월
  30. 08.31코코아분말 0.9%
  31. 08.30WHAT THE
  32. 08.30Ado - The World’s Continuation
  33. 08.29문을 닫고 들어오세요
  34. 08.28하우스도르프 공간
  35. 08.27All Time Low
  36. 08.27『생각 좀 하며 세상을 보자』
  37. 08.26세상의 끝을 겨눈대도
  38. 08.25앉은 자리가 꽃자리
  39. 08.246과 7 사이 자연수
  40. 08.23아직 아무 문제도 발견되지 않았습니다
  41. 08.22Adventure
  42. 08.21Adobe Creek
  43. 08.20나의 무가지보(無價之寶)
  44. 08.20HUNTR/X - What It Sounds Like
  45. 08.19T. Rex
  46. 08.18누구를 위하여 종은 울리나
  47. 08.17Sunday Morning
  48. 08.16일상의 안녕
  49. 08.15친애하는 우리의 결함에게
  50. 08.14이것이 있으므로 저것이 있다
  51. 08.14『초신성의 후예』
  52. 08.13나는 나의 길을 간다
  53. 08.13Aimer - 蝶々結び (나비매듭)
  54. 08.12Vanilla Latte
  55. 08.11그것은 하나의 가까움
  56. 08.11Vaundy - 踊り子 (무희)
  57. 08.10정복 불허의 공간에
  58. 08.09쉼 없이 수선하기
  59. 08.08나는 전설이다
  60. 08.07철판치즈버거
  61. 08.07『나는 포기를 모른다』
  62. 08.06난 포기에 소질 있음
  63. 08.05스피또런
  64. 08.04하룻밤 만에
  65. 08.04Myuk - Black Sheep
  66. 08.03세상에 딱 하나뿐인
  67. 08.03『심장보다 높이』
  68. 08.02게으름뱅이를 위한 변명
  69. 08.02Myuk - Gift
  70. 08.02『누가 내 치즈를 옮겼을까?』
  71. 08.01북극 백화점
  72. 7월
  73. 07.31사람은 무엇으로 사는가?
  74. 07.30KRAFTON Yeoksam Office
  75. 07.30Tani Yuuki - W/X/Y
  76. 07.29Slowly flowing day
  77. 07.28What's this?
  78. 07.28Architectural Improvements 4
  79. 07.27Lime Light
  80. 07.26우리가 기다린 미래
  81. 07.25Final approach
  82. 07.25Poster Design Note : Form and Flow
  83. 07.25Poster Design Note : How We Made It
  84. 07.24폭풍의 눈
  85. 07.23IYKYK
  86. 07.22순살치킨 -> 치킨너겟
  87. 07.21TRAIN - TRAIN
  88. 07.21Architectural Improvements 3
  89. 07.21Logo Design Note : The Logic of Flow
  90. 07.20어떤 통찰도 지름길로는 얻을 수 없다
  91. 07.20DeepDive : Many Over Mighty
  92. 07.20JINI - Bad Reputation
  93. 07.19시간이 느리게 가는 건
  94. 07.19Architectural Improvements 2
  95. 07.19DeepDive : GC-Triggered Stop-the-World
  96. 07.18EVEREST
  97. 07.18Architectural Improvements 1
  98. 07.18PhantomFlow : High-performance HTTP request simulator
  99. 07.18Introduction to Project KlickLab
  100. 07.18What is Clickstream data?
  101. 07.17깊은 사고는 더 이상 니즈가 없다
  102. 07.16이기적인 토대 위
  103. 07.15무엇이든, 언제가는
  104. 07.15Official HIGE DANdism - Universe
  105. 07.14경험을 압축하는 알고리즘은 존재하지 않는다 ⏳
  106. 07.14『료의 생각 없는 생각』
  107. 07.13무한한 가능성을 가질 것
  108. 07.12화려한 거짓을 향해
  109. 07.11Kentucky Fried Chicken 🍗
  110. 07.10Tropical Blue 🌊
  111. 07.09처음처럼 내 딛는
  112. 07.08어제와 다른 하늘의 색
  113. 07.08Furui riho - Hello
  114. 07.07누군가의 달이었기를 🌕
  115. 07.06아직 뜯지 않은 마음 🎁
  116. 07.05황금의 오솔길
  117. 07.05noa - A8番出口 (A8번출구)
  118. 07.04우리는 오가는 바람
  119. 07.03Nic dwa razy
  120. 07.02Never basic
  121. 07.02MEOVV - DROP TOP
  122. 07.01입꼬리올림근
  123. 6월
  124. 06.30그럼에도 불구하고
  125. 06.29과잉포장된 자존심
  126. 06.29Steve Winwood – Higher Love
  127. 06.29『어린 왕자』
  128. 06.28E3i3 🛫
  129. 06.27118 ✨
  130. 06.26무한 우주에 순간의 빛일지라도 🌌
  131. 06.26Mercury Rev - Holes
  132. 06.25RUSH
  133. 06.25Cloudybay - 내게로
  134. 06.24그래, 우리는
  135. 06.24『이건 다만 사랑의 습관』
  136. 06.23The wind blowing low
  137. 06.23『생각 망치』
  138. 06.22피어나는 마음의 꽃
  139. 06.21하나는 죽고, 하나는 살았다 💡
  140. 06.21『2025 제16회 젊은작가상 수상작품집』
  141. 06.20초속일초
  142. 06.19씨앗이 가장 고귀한 이유는
  143. 06.18Evening Primrose 🏵️
  144. 06.17마음이 휑뎅그렁할 때
  145. 06.16하나
  146. 06.16Vaundy - しわあわせ (주름 맞추기)
  147. 06.15강철무지개
  148. 06.15Will Ye Go, Lassie Go?
  149. 06.14유람 🚉
  150. 06.1313일의 금요일 ⏰
  151. 06.12백만 스물하나, 백만 스물둘
  152. 06.11경안천 🥩
  153. 06.10달이 아름답네요 🌕
  154. 06.10Yuuri - ドライフラワー (드라이플라워)
  155. 06.10『하늘과 바람과 별과 시』
  156. 06.09Tampermonkey 🖥️
  157. 06.09Hump Back - 拝啓、少年よ (친애하는 소년이여)
  158. 06.09Yuuri - ガリレオは恋をする(갈릴레오는 사랑을 한다)
  159. 06.08미르 ✨
  160. 06.08『인간의 대지』
  161. 06.07나 평생 꿈만을
  162. 06.06아르기닌 🍫
  163. 06.05변속주 🌃
  164. 06.05THE BLUE HEARTS - 情熱の薔薇 (정열의 장미)
  165. 06.05noa - ホットレモン (Hot Lemon)
  166. 06.04Global Running Day 🏃‍
  167. 06.03가장 밝은 별
  168. 06.02천천히 🌃
  169. 06.01circular metal ring 🏀
  170. 5월
  171. 05.31담장과 쪽문 🐋
  172. 05.30투표런 🚀
  173. 05.29출발선 🏃
  174. 05.28Post Traumatic Growth 🌠
  175. 05.27SET 🎂
  176. 05.26READY 📅
  177. 05.25청복 💙
  178. 05.24열복 🫀
  179. 05.23강제 푸시 반성합니다 🔁
  180. 05.22유로파 🍏
  181. 05.21떠오름과 저묾 🌞
  182. 05.20Family Friend Fools
  183. 05.20Aimyon - 裸の心 (벌거벗은 마음)
  184. 05.19Time machine ⏰
  185. 05.18맑은 일요일 🧼
  186. 05.17흐린 토요일 🐢
  187. 05.16PTG 🌧️
  188. 05.15셋이 만드는 하나 🧭
  189. 05.14Lotte+Cafeteria 🍔
  190. 05.13오십삼 🌤️
  191. 05.12일장춘몽 💊
  192. 05.11𝑬𝒗𝒆𝒓𝒍𝒂𝒏𝒅, 𝑬𝒗𝒆𝒓 𝑴𝒊𝒏𝒅 🎡
  193. 05.10五月雨よ 🌧
  194. 05.09Your Journey Starts Here 🪧
  195. 05.08「권의 속도」 📄
  196. 05.07Quiet Air ⏳
  197. 05.06놀자판 하루 🐷
  198. 05.05뭔데이 🎏
  199. 05.04After School 🎒
  200. 05.03나침반이 가리킨 곳 🌌
  201. 05.02짧은 하루 📖
  202. 05.01예고된 악재는 악재가 아니다 🌧️
  203. 05.01『오즈의 마법사』
  204. 4월
  205. 04.30Can More 🍧
  206. 04.29초급반 🏃‍
  207. 04.28감사합니다. 죄송합니다. 🙏
  208. 04.27맥도날드 원정 🍔
  209. 04.26무용(無用)의 쓸모 🛤️
  210. 04.25Sunny Day 🌞
  211. 04.24벚나무 아래에서 🌸
  212. 04.23언제나 이타카를 마음에 두라 🌿
  213. 04.22D-100 🧑‍💻
  214. 04.21수상한 미용실 💇‍♂️
  215. 04.20손으로 컴퓨터를 마주하다🔧
  216. 04.19비가 오면 빨래를 하자 🌧️
  217. 04.18반차😴
  218. 04.17발표, 청소, 러닝🗣️
  219. 04.16반티 발주👕
  220. 04.15첫 달리기🏃‍
  221. 04.14선택과 해석🗳️
  222. 04.14신지훈 - 시가 될 이야기
  223. 04.13Home Sweet Home🏠
  224. 04.12人生
  225. 04.11반티 디자인 공모 & 제출👕
  226. 04.11KiiiKiii - I DO ME
  227. 04.10알고리즘의 끝, C언어의 시작🧭
  228. 04.09하와이안 스테이크🥩
  229. 04.08Long Chat (#🎮)
  230. 04.07Es irrt der Mensch, solang' er strebt.📚
  231. 04.06마무리🛌
  232. 04.05움직이는 물체의 시간은 느리게 간다💤
  233. 04.04하나의 칼날🗡️
  234. 04.033x7=21🧗
  235. 04.02퀴즈 다음날, 시험 전날😴
  236. 04.01April Fools' Day🎭
  237. 3월
  238. 03.311년의 90번째 날🌅
  239. 03.31『카할의 과학하는 삶』
  240. 03.30日曜日은 칠요일 중 첫째 날 이다⏰
  241. 03.29토요일은 주말이 아니다☕
  242. 03.28그래프와 치킨버거🐔
  243. 03.273주차의 시작🗓️
  244. 03.26기초 다지기🔧
  245. 03.25기초 다지기 & 정리해야 할 CS 개념들💡
  246. 03.240.44%
  247. 03.23본가 다녀온 날🏡
  248. 03.22문제 풀이에 집중한 하루 📅
  249. 03.21동료학습🌿
  250. 03.20첫번째 시험📝
  251. 03.19먹다가 끝난 하루🍖
  252. 03.18눈이 쌓이면 버그도 쌓인다❄️
  253. 03.17깃허브, 팀별 면담, 키워드 공부👨‍💻
  254. 03.17RADWIMPS - 正解 (정답)
  255. 03.16외출과 배달🚶🛍️
  256. 03.16ILLIT - Almond Chocolate
  257. 03.16Kep1er - HighLight
  258. 03.15첫 주말🛏️
  259. 03.14컴퓨팅 사고로의 전환🧠
  260. 03.13cookie4u.store🍪 + 1주차 발제📚 + 회식🍺
  261. 03.12디지털 포춘쿠키🍪
  262. 03.11정글 입성🏕
  263. 03.10입소 당일📅

디지털 포춘쿠키🍪

🏕 0주차 미니 프로젝트 - 웹서비스 개발 및 배포

📌 정글 콤파스 0주차 설명

정글 콤파스 0주차에는 다음과 같은 안내가 적혀 있다.

입학시험 때 배운 기술들을 토대로, 3박 4일간 미니 프로젝트를 완성해보세요.
유쾌하거나 / 의미있거나 / 흥미롭거나 - 자유롭게 주제를 선정해도 무방합니다.
팀원들과 아이디어 협의 후 주제 발표(화)를 하고, 구현 완료 후 결과물 발표(목)를 진행합니다.
한 명의 AWS EC2에 업로드합니다.
(옵션) 도메인을 붙여 완성합니다.

💡 기본적으로, 입소 첫날부터 바로 실전 프로젝트가 시작된다고 보면 된다.


🕒 3월 10일 - 첫날 일정

입소 당일인 3월 10일, 다들 피곤해서 23시에 거의 숙소로 돌아갔다.

근데 사실, 원칙적으로는 10시~23시까지 훈련을 받아야 한다.
즉, 23시 이전에 일과를 끝마치는 건 불가능하다는 얘기다.

“원칙적으로는” 불가능하다고 했는지는,
와보면 안다. 😏

어쨌든, 우리 8팀이 결정한 프로젝트 “디포쿠”에 대해 설명하겠다.


🍪 8팀 미니프로젝트 - 디지털 포춘쿠키 (디포쿠)

🎯 프로젝트 개요

📌 디지털 포춘쿠키(Digital Fortune Cookie)
사용자가 하루에 한 번 행운의 메시지를 받을 수 있는 웹 애플리케이션

운세 메시지 + 점수를 제공하며, 개인의 운세 기록을 저장 & 비교 가능
운세 점수는 데이터베이스에 기록되고, 사용자 간 랭킹도 확인 가능


💡 아이디어의 시작

💭 “캠퍼스에서의 단조로운 생활에 재미 한스푼을 추가하자”
전통적인 포춘쿠키(Fortune Cookie)과자를 열면 짧은 운세 메시지가 나오는 방식이다.
이걸 웹에서 하루에 한 번만 뽑을 수 있도록 구현해보자는 아이디어가 나왔다.

💡 왜 이 프로젝트를 선택했나?
매일 운세를 확인할 수 있는 심리적인 재미 요소 제공
운세 점수를 기반으로 랭킹 기능 추가 가능
MongoDB & Flask를 활용한 웹 서비스 구축 연습
JWT 기반 인증 시스템을 적용하여 보안 강화


🚀 주요 기능

🔹 1. 하루에 한 번만 포춘쿠키 열기

✅ 사용자는 하루에 한 번만 포춘쿠키를 열 수 있다.
MongoDB의 원자적 업데이트(Atomic Update) 기술을 사용하여 중복 요청 방지
📌 기술 스택: Flask, MongoDB, AJAX


🔹 2. 행운 점수(운세 점수) 부여

✅ 각 운세 메시지와 함께 0~100점 사이의 랜덤한 행운 점수가 제공된다.
✅ 점수는 단순 랜덤이 아니라, 가중치 기반의 확률 알고리즘을 적용
📌 기술 스택: Python random.choices() + MongoDB


🔹 3. 운세 메시지 생성 알고리즘

✅ 운세 메시지는 3가지 요소(이벤트 + 결과 + 조언)로 구성되어 매번 다르게 생성된다.
✅ 특정한 점수 범위(좋음/보통/나쁨)에 맞는 운세 메시지가 자동 선택됨.
📌 기술 스택: Python 템플릿 엔진, 랜덤 알고리즘


🔹 4. JWT 기반 인증 시스템

회원가입 & 로그인 후, JWT 토큰을 활용하여 사용자 인증이 이루어진다.
✅ 사용자는 로그인 후에만 포춘쿠키를 뽑을 수 있다.
서버 재부팅 시, 기존 JWT 토큰을 무효화하여 보안성을 강화
📌 기술 스택: Flask JWT Extended, Secure Cookies


🔹 5. 사용자 랭킹 시스템

✅ 모든 사용자의 행운 점수를 MongoDB에서 직접 계산하여 랭킹 제공
✅ 랭킹 계산 시 전체 데이터를 불러오지 않고, 효율적인 정렬 알고리즘 적용
📌 기술 스택: MongoDB 인덱싱, Flask


🔧 사용 기술 스택

카테고리기술
백엔드Flask, MongoDB, JWT 인증
프론트엔드HTML, CSS, JavaScript (AJAX)
배포 환경AWS EC2, Nginx, Gunicorn
보안JWT, HTTPOnly 쿠키, Secure 쿠키

📌 프로젝트를 통해 배운 점

Flask와 MongoDB를 활용한 RESTful API 설계
JWT 인증 시스템 & 보안 설정 적용
Flask + Gunicorn + Nginx를 이용한 웹 서비스 배포
비동기 AJAX 요청을 활용한 프론트엔드 & 백엔드 통신


🔥 마무리

📌 디포쿠는 단순한 운세 서비스가 아니다.
단순한 랜덤 운세가 아니라, 데이터베이스 & 인증 시스템을 연습할 수 있는 프로젝트였다.

🚀 실제 작동 화면을 정리해보겠다.
📌 다음 글에서 계속!

댓글