Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

1,113 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

moum

๋‚˜๋งŒ์˜ ์ปฌ๋ ‰์…˜ ๋ถ ์ˆ˜์ง‘ํ’ˆ ์ €์žฅ์†Œ, ๋ชจ์Œ

์†Œ๊ฐœ

๊ฐœ๋ฐœ๊ธฐ๊ฐ„ : 2024-09-06(๊ธˆ) ~ 2024-12-02(์›”)
์บ์น˜ํ”„๋ ˆ์ด์ฆˆ : ๋ชจ์œผ๋Š” ์ฆ๊ฑฐ์›€, ๋ชจ์Œ์œผ๋กœ๋ถ€ํ„ฐ
๋ฐœํ‘œ์ž๋ฃŒ : https://1drv.ms/p/s!Asad0zibIBicikUbIypvONh4avO7?e=poq9vJ
๋ฐœํ‘œ์˜์ƒ : https://www.youtube.com/watch?v=eKirps0OGmg&t=1607s

๋ฐฐ๊ฒฝ ๋ฐ ๋ชฉ์ 

  • ์ค‘๊ณ ๊ฑฐ๋ž˜ ์—…์ฒด์˜ ๋ถ„์„์— ๋”ฐ๋ฅด๋ฉด, ์ ๊ทน์ ์œผ๋กœ ์ทจ๋ฏธ๋ฅผ ์ฆ๊ธฐ๊ณ  ์†Œ์œ„ ๋•์งˆ์„ ํ•˜๋Š” "๋””๊น…์กฑ"๋“ค์ด ์ค‘๊ณ ๊ฑฐ๋ž˜ ์‹œ์žฅ์„ ์ด๋Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.
  • ์‹ค์ œ๋กœ ์ทจ๋ฏธ/ํ‚ค๋œํŠธ ์ƒํ’ˆ์˜ ๊ฑฐ๋ž˜๊ฑด์ˆ˜๊ฐ€ ์ƒ์œ„ 3๊ฑด ์•ˆ์— ํฌํ•จ๋˜๋Š” ๋“ฑ ์ƒ์Šน์„ธ๋ฅผ ๋ณด์ด๊ณ  ์žˆ์ง€๋งŒ, ํ•ด์™ธ์™€ ๋‹ฌ๋ฆฌ ๊ตญ๋‚ด์—๋Š” ์ˆ˜์ง‘ํ’ˆ๋งŒ์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ์˜จ๋ผ์ธ ํ”Œ๋žซํผ์ด ๋ถ€์žฌํ•œ ์ƒํƒœ์ด๋‹ค.
  • ์ˆ˜์ง‘๊ฐ€๋“ค์€ ์˜จ๋ผ์ธ ์นดํŽ˜๋‚˜ ๋ธ”๋กœ๊ทธ, ์ค‘๊ณ ๊ฑฐ๋ž˜ ํ”Œ๋žซํผ ๋“ฑ์—์„œ ์†Œ๊ทœ๋ชจ๋กœ ํ™œ๋™ํ•˜์—ฌ, ์ˆ˜์ง‘๊ฐ€๋“ค๋งŒ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ณ  ์ •๋ณด๊ฐ€ ์‚ฐ๋ฐœ์ ์œผ๋กœ ๊ณต์œ ๋˜๊ณ  ์žˆ๋‹ค.
  • ๋”ฐ๋ผ ์ด๋ฆ„ ๊ทธ๋Œ€๋กœ โ€œ๋ชจ์œผ๋‹คโ€๋ผ๋Š” ๋œป์„ ๋‹ด์•„, ์˜คํ”„๋ผ์ธ์— ํฉ์–ด์ ธ ์žˆ๋Š” ๋‚˜๋งŒ์˜ ์†Œ์ค‘ํ•œ ์ˆ˜์ง‘ํ’ˆ์„ ํ•œ ๋ฐ ๋ชจ์•„์„œ ๊ด€๋ฆฌํ•˜๊ณ  ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ํ”Œ๋žซํผ์„ ์ œ๊ณตํ•˜๊ณ ์ž ํ•œ๋‹ค.

์ธ์› ๐Ÿง‘โ€๐ŸŽ“

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

๋ชฉ์ฐจ

  1. ๊ธฐํš ๋ฐ ์„ค๊ณ„
  2. ๊ธฐ์ˆ  ์Šคํƒ
  3. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ
  4. ์ฃผ์š” ๊ธฐ๋Šฅ
  5. ํ™”๋ฉด๊ตฌ์„ฑ
  6. ๋ฐฐํฌ ๋ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ
  7. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

1. ๊ธฐํš ๋ฐ ์„ค๊ณ„

ํ™”๋ฉด

Figma๋ฅผ ํ†ตํ•ด UI Prototype์„ ์ž‘์„ฑํ•จ์œผ๋กœ์จ ๊ธฐ๋Šฅ ํ๋ฆ„์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ™•์ธํ•˜๊ณ  ํŒ€์›๊ฐ„ ๋””์ž์ธ ๋ฐฉํ–ฅ ๊ณต์œ 

Use Case ์ž‘์„ฑ

Figma ๊ธฐ๋ฐ˜์œผ๋กœ UseCase๋ฅผ ์ž‘์„ฑํ•˜์—ฌ Actor๋ฅผ ์‹๋ณ„ํ•˜๊ณ , ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ ๋ฐ ์‹œ์Šคํ…œ๊ณผ์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ™•์ธ

DB Modeling

Exerd ๊ธฐ๋ฐ˜์œผ๋กœ DB Modeling ์ง„ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฐ ๊ด€๊ณ„ ์„ค์ •

์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

Notion์„ ํ†ตํ•ด ํŒ€์› ๊ฐ์ž์˜ ์ž‘์—…์‚ฌํ•ญ ๋ฐ ํšŒ์˜๋ก ๊ณต์œ 
github - slack ์—ฐ๋™์œผ๋กœ push ์•Œ๋ฆผ ๊ตฌ์„ฑ


2. ๊ธฐ์ˆ  ์Šคํƒ

Environment

Git GitHub IntelliJ IDEA Visual Studio Code

Design

Adobe Photoshop Canva Figma

Development

Frontend

HTML5 CSS3 JavaScript Bootstrap jQuery Thymeleaf

Backend

Java Spring Spring Security Python OAuth2 MyBatis

Database

MySQL Exerd

DevOps

Jenkins Docker Gradle Nginx Naver Cloud Application Load Balancer (ALB) Apache Kafka

Collaboration

Slack Notion Postman


3. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ
  ๐Ÿ“ฆmain
  โ”ฃ ๐Ÿ“‚java
  โ”ƒ โ”ฃ ๐Ÿ“‚moum
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚project
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚config
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCustomUserDetails.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMailConfig.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMyBatisConfig.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSecurityConfig.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œWebSocketConfig.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚controller
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAchievementController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAdminController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlertController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAuthController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBoardController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œErrorController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œHomeController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLikesController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMailController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSocketController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œUserController.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dao
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAchievementDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlertDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBoardDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionCategoryDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionStatusDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLikesDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œUserDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œUserSnsDao.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dto
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œMailDTO.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚paging
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œRequestList.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚service
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAchievementService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlertService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBoardService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatKafkaConsumer.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatKafkaProducer.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionCategoryService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionStatusService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCustomOAuth2UserService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCustomUserDetailsService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultAchievementService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultAlertService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultBoardService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultChatService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultCollectionCategoryService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultCollectionService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultCollectionStatusService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultLikesService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultReportService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œDefaultUserService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œKafkaToWebSocketService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLikesService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMailService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œNcpObjectStorageService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œOAuth2Service.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œStorageService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œUserService.java
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚vo
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAchievement.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlert.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAttachedFile.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBoard.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChat.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatroom.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollection.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionStatus.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentRequest.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentResponse.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLikes.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œMaincategory.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReport.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportCategory.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportResultCategory.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œSubcategory.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œUser.java
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œUser_SNS.java
  โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œMoumApplication.java
  โ”ฃ ๐Ÿ“‚resources
  โ”ƒ โ”ฃ ๐Ÿ“‚config
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œmail.properties
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œncp.properties
  โ”ƒ โ”ฃ ๐Ÿ“‚moum
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚project
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚dao
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAchievementDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œAlertDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œBoardDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œChatDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionCategoryDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCollectionStatusDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œCommentDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œLikesDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œReportDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œUserDao.xml
  โ”ƒ โ”ƒ โ”ƒ โ”ƒ โ”— ๐Ÿ“œUserSnsDao.xml
  โ”ƒ โ”ฃ ๐Ÿ“‚static
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚css
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚images
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚achievement
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚board
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚collections
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚common
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚common2
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚main
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚post
  โ”ƒ โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚user
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚js
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œfavicon.ico
  โ”ƒ โ”ƒ โ”— ๐Ÿ“œindex.html
  โ”ƒ โ”ฃ ๐Ÿ“‚templates
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚achievement
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚admin
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚auth
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚board
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚collection
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚report
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“‚user
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œerror.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œfooter.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œheader.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œhome.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œindex.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œmyhome.html
  โ”ƒ โ”ƒ โ”ฃ ๐Ÿ“œranking.html
  โ”ƒ โ”ƒ โ”— ๐Ÿ“œtest.html
  โ”ƒ โ”ฃ ๐Ÿ“œapplication-dev.yml
  โ”ƒ โ”ฃ ๐Ÿ“œapplication-local.yml
  โ”ƒ โ”ฃ ๐Ÿ“œapplication-prod.yml
  โ”ƒ โ”— ๐Ÿ“œapplication.yml
  

4. ์ฃผ์š” ๊ธฐ๋Šฅ

์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ด€๋ฆฌ
Spring Security๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊ทธ์ธ ๋ฐ ์ ‘๊ทผ ๊ถŒํ•œ ์„ค์ •
OAuth2์— ๊ธฐ๋ฐ˜ํ•œ ๊ฐ„ํŽธ๋กœ๊ทธ์ธ (๋„ค์ด๋ฒ„, ์นด์นด์˜ค, ๊ตฌ๊ธ€ ์ œ๊ณต)

์ˆ˜์ง‘ํ’ˆ ๊ด€๋ฆฌ ๋ฐ ๊ณต์œ 
๋งˆ์ดํ™ˆ์ด๋ผ๋Š” ๋‚˜๋งŒ์˜ ๊ณต๊ฐ„์— ํ•ญ๋ชฉ๋ณ„๋กœ ์ˆ˜์ง‘ํ’ˆ ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ
๊ฒŒ์‹œ๊ธ€๊ณผ ์ˆ˜์ง‘ํ’ˆ์„ ์—ฐ๋™ํ•˜์—ฌ ๋“ฑ๋กํ•œ ์ˆ˜์ง‘ํ’ˆ ๊ณต์œ  ๋ฐ ๊ฑฐ๋ž˜ ์ง€์›

๋‹ค์–‘ํ•œ ๊ฒŒ์‹œ๊ธ€
์‚ฌ์šฉ์ž์˜ ๋‹ค์–‘ํ•œ ๋ชฉ์  ์ถฉ์กฑ์„ ์œ„ํ•ด ์ผ๋ฐ˜, ์ „์‹œ, ๊ฑฐ๋ž˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ชฉ์ ์˜ ๊ฒŒ์‹œ๊ธ€ ์ œ๊ณต

์—…์  ์‹œ์Šคํ…œ
์‚ฌ์šฉ์ž์˜ ํ™œ๋™ ๊ณ ์ทจ๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ”Œ๋žซํผ ๋‚ด ํ™œ๋™๋ณ„ ์—…์  ์ทจ๋“
๊ฒŒ์‹œ๊ธ€ ๋ชฉ๋ก ํ™”๋ฉด์—์„œ ์ „์ฒด์‚ฌ์šฉ์ž์˜ ์—…์  ๋žญํ‚น ์ œ๊ณต

์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…
์ˆ˜์ง‘ํ’ˆ ๊ฑฐ๋ž˜ ์ง€์›์„ ์œ„ํ•ด WebSocket๊ณผ Kafka์„ ์ด์šฉํ•œ 1:1 ์ฑ„ํŒ… ๊ธฐ๋Šฅ

๊ด€๋ฆฌ์ž ๋ฐ ์‹ ๊ณ 
๊ด€๋ฆฌ์ž ๊ถŒํ•œ ์†Œ์œ ์ž์—๊ฒŒ๋Š” ๋ณ„๋„์˜ ๊ด€๋ฆฌํŽ˜์ด์ง€๋กœ ํ”Œ๋žซํผ ๊ด€๋ฆฌ ์ง€์›
๋ถˆ๊ฑด์ „ํ•œ ๊ฒŒ์‹œ๊ธ€ ์ œ์žฌ๋ฅผ ์œ„ํ•ด ์‹ ๊ณ  ๊ธฐ๋Šฅ ์ง€์›

ํ•˜๋น„์œ„ํ‚ค
OpenNamu๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ˆ˜์ง‘๊ฐ€๋“ค๋งŒ์„ ์œ„ํ•œ ์œ„ํ‚คํŽ˜์ด์ง€ ์ œ๊ณต

ํŒŒ์ผ ์—…๋กœ๋“œ ๋ฐ ๊ด€๋ฆฌ
ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ๋ฐ ํŒŒ์ผ ์—…๋กœ๋“œ


5. ํ™”๋ฉด ๊ตฌ์„ฑ

๋ฐœํ‘œ์ž๋ฃŒ ๋ฐ ์˜์ƒ ์ฐธ๊ณ 
๋ฐœํ‘œ์ž๋ฃŒ : https://1drv.ms/p/s!Asad0zibIBicikUbIypvONh4avO7?e=poq9vJ
๋ฐœํ‘œ์˜์ƒ : https://www.youtube.com/watch?v=eKirps0OGmg&t=1607s

ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ

ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ

  • ๋ฉ”์ธํ™”๋ฉด ์šฐ์ธก ์ƒ๋‹จ [์‹œ์ž‘ํ•˜๊ธฐ] ๋ฒ„ํŠผ์œผ๋กœ ๋กœ๊ทธ์ธ ํ™”๋ฉด ํ‘œ์ถœ
  • ์ž์ฒดํšŒ์› ๋ฐ SNS ๋กœ๊ทธ์ธ ์ œ๊ณต

  • ํšŒ์›๊ฐ€์ž… ์‹œ ๋‹‰๋„ค์ž„ ์ค‘๋ณต๊ฒ€์‚ฌ ๋ฐ ์ด๋ฉ”์ผ ์ธ์ฆ ์ง„ํ–‰
  • ๋น„๋ฐ€๋ฒˆํ˜ธ ๊ทœ์น™ ์„ค์ •: ์ตœ์†Œ 8์ž / ์˜๋ฌธ, ์ˆซ์ž, ํŠน์ˆ˜๋ฌธ์ž ํฌํ•จ

๋งˆ์ดํŽ˜์ด์ง€
  • ํ”„๋กœํ•„์‚ฌ์ง„ ๋ณ€๊ฒฝ, ๋‹‰๋„ค์ž„ ๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ, SNS ๊ณ„์ • ์—ฐ๋™ ์ง€์›
์ˆ˜์ง‘ํ’ˆ/๋งˆ์ดํ™ˆ

์ˆ˜์ง‘ํ’ˆ/๋งˆ์ดํ™ˆ

๋งˆ์ดํ™ˆ

  • ๋กœ๊ทธ์ธ ์‹œ ๋งˆ์ดํ™ˆ ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐ
  • ์ˆ˜์ง‘ํ’ˆ ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ ์ง€์›
  • ์ˆ˜์ง‘ํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ฅธ ํ•„ํ„ฐ ์ง€์›

์ˆ˜์ง‘ํ’ˆ ๋“ฑ๋ก
  • ์‚ฌ์ง„ ๋ฐ ํ•„์š”์ •๋ณด ์ž…๋ ฅ ํ›„ ์ˆ˜์ง‘ํ’ˆ
๊ฒŒ์‹œ๊ธ€

๊ฒŒ์‹œ๊ธ€

์ „์‹œ๊ฒŒ์‹œ๊ธ€ ์ผ๋ฐ˜๊ฒŒ์‹œ๊ธ€ ๊ฑฐ๋ž˜๊ฒŒ์‹œ๊ธ€

  • ๊ฒŒ์‹œ๊ธ€์„ ์ „์‹œ, ์ผ๋ฐ˜, ๊ฑฐ๋ž˜๊ฒŒ์‹œ๊ธ€๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋…๋ฆฝ์  ๋ชฉ์  ๋ถ€์—ฌ
  • ์ „์‹œ๊ฒŒ์‹œ๊ธ€์€ ํŠน์ • ๊ธฐ๊ฐ„ ๋‚ด ํŠน์ • ์ถ”์ฒœ ์ˆ˜ ๋งŒ์กฑ ์‹œ ์ž๋™ ๊ฒŒ์žฌ
  • ๊ฑฐ๋ž˜๊ฒŒ์‹œ๊ธ€์€ ์‚ฌ์šฉ์ž๊ฐ„ ์ˆ˜์ง‘ํ’ˆ ๊ฑฐ๋ž˜ ์ง€์›

๊ฒŒ์‹œ๊ธ€ ์ƒ์„ธ
  • ์ œ๋ชฉ, ๋‚ด์šฉ, ๋Œ“๊ธ€ ๋“ฑ ๊ฒŒ์‹œ๊ธ€ ์ •๋ณด ๊ฒŒ์‹œ
  • ํ•˜๋‹จ ํ”„๋กœํ•„ ๋ฐ•์Šค์—์„œ ์ž‘์„ฑ์ž ์ •๋ณด ํ™•์ธ ๋ฐ ์‹ ๊ณ , ์ถ”์ฒœ ์ง€์›
  • ๊ฑฐ๋ž˜๊ฒŒ์‹œ๊ธ€์˜ ๊ฒฝ์šฐ [์ฑ„ํŒ…ํ•˜๊ธฐ] ๋ฒ„ํŠผ ํ‘œ์‹œ

๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก
  • Summernote.js ํ™œ์šฉ
์—…์ 

์—…์ 

  • ์‚ฌ์šฉ์ž์˜ ํ”Œ๋žซํผ ํ™œ๋™ ๊ณ ์ทจ๋ฅผ ์œ„ํ•ด ์—…์ ์‹œ์Šคํ…œ ์ ์šฉ
  • ๋งˆ์ดํŽ˜์ด์ง€ ์šฐ์ธก์—์„œ ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ์—…์  ํ™•์ธ ๊ฐ€๋Šฅ

  • ๋”๋ณด๊ธฐ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ๋ฏธํš๋“ ์—…์  ๋ชฉ๋ก์„ ์ง„ํ–‰๋„ ์ˆœ์œผ๋กœ ์ถœ๋ ฅ
  • ์ „์ฒด / ํš๋“ / ๋ฏธํš๋“ ์—…์  ๋ชฉ๋ก ์กฐํšŒ ๊ฐ€๋Šฅ

  • ํšŒ์›๊ฐ€์ž… ํ›„ ์ฒซ ๋กœ๊ทธ์ธ ์‹œ, ์•Œ๋ฆผ์„ ํ†ตํ•ด ์ฒซ ์—…์  ์ทจ๋“์„ ์•Œ๋ ค์คŒ์œผ๋กœ์จ ์—…์  ์‹œ์Šคํ…œ ์†Œ๊ฐœ
์ฑ„ํŒ…

์ฑ„ํŒ…

  • ์šฐ์ธก ์ƒ๋‹จ ์ฑ„ํŒ… ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์ฑ„ํŒ… UI ์ ‘๊ทผ

  • ์ฑ„ํŒ…๋ฐฉ ๋ชฉ๋ก์—์„œ ์ƒ๋Œ€๋ฐฉ ์ •๋ณด, ์ตœ๊ทผ๋ฉ”์‹œ์ง€, ๊ด€๋ จ๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„ ํ™•์ธ
  • ํŠน์ • ๋ฐฉ ํด๋ฆญ ์‹œ ํ•ด๋‹น ์ฑ„ํŒ…์ฐฝ์œผ๋กœ ์ด๋™
  • ์ƒˆ๋กœ์šด ๋ฉ”์‹œ์ง€ ๋ฐœํ–‰ ์‹œ ์ƒ๋Œ€๋ฐฉ์—๊ฒŒ ์•Œ๋ฆผ ์ „์†ก

  • ์ฐธ๊ฐ€์ž๊ฐ€ ๋ชจ๋‘ ์ฑ„ํŒ…๋ฐฉ์„ ๋ณด๊ณ  ์žˆ๋‹ค๋ฉด ๋ณ„๋„ ์•Œ๋ฆผ ๋ฐœํ–‰ํ•˜์ง€ ์•Š์Œ
์•Œ๋ฆผ

์•Œ๋ฆผ

  • ์šฐ์ธก ์ƒ๋‹จ ์•Œ๋ฆผ ๋ฒ„ํŠผ์„ ํ†ตํ•ด ์•Œ๋ฆผ UI ์ ‘๊ทผ
  • ์ƒˆ๋กœ์šด ์•Œ๋ฆผ์ด ์žˆ์„ ์‹œ ์ข… ์ƒ‰๊น” ๋ณ€๊ฒฝํ•˜์—ฌ ํ‘œ์‹œ

  • ํŠน์ • ์•Œ๋ฆผ ํด๋ฆญ ์‹œ ์œ ํ˜•์— ๋”ฐ๋ผ ํ™”๋ฉด ์ด๋™ (์ฑ„ํŒ…: ์ฑ„ํŒ…๋ฐฉ / ๋Œ“๊ธ€: ๊ฒŒ์‹œ๊ธ€ / ์—…์ : ๋งˆ์ดํŽ˜์ด์ง€ ๋“ฑ)
  • ์•Œ๋ฆผ์ฐฝ ์ƒ๋‹จ [๋ชจ๋‘ ์ฝ๊ธฐ] ๋ฒ„ํŠผ์œผ๋กœ ์•Œ๋ฆผ ์ฝ์Œ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
๊ด€๋ฆฌ์ž

๊ด€๋ฆฌ์ž

  • ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ ์‹œ ๋ณ„๋„ ๊ด€๋ฆฌ์ž ํ™”๋ฉด์œผ๋กœ ์ด๋™

  • ์ปฌ๋Ÿผ๋ณ„ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ œ๊ณต

  • ๊ฒŒ์‹œ๊ธ€, ์ˆ˜์ง‘ํ’ˆ ๋ถ„๋ฅ˜, ์—…์ , ํšŒ์›, ์‹ ๊ณ  ๊ด€๋ฆฌ ์ง€์›
  • ํšŒ์› ๊ด€๋ฆฌ ์‹œ ์Šˆํผ์–ด๋“œ๋ฏผ ๊ณ„์ •์— ํ•œํ•˜์—ฌ ๊ด€๋ฆฌ์ž๊ถŒํ•œ ๋ถ€์—ฌ/ํšŒ์ˆ˜ ๊ฐ€๋Šฅ
์‹ ๊ณ 

์‹ ๊ณ 

  • ๊ฒŒ์‹œ๊ธ€ ํ”„๋กœํ•„ ์˜์—ญ์—์„œ ๋ถ€์ ์ ˆํ•œ ๊ฒŒ์‹œ๊ธ€ ์‹ ๊ณ  ์ง€์›

  • ์‹ ๊ณ ๋œ ๊ฒŒ์‹œ๊ธ€์€ ๊ด€๋ฆฌ์ž ํ™”๋ฉด์—์„œ ํ™•์ธ ๊ฐ€๋Šฅ
  • ๊ด€๋ฆฌ์ž๋Š” ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€ ๊ฒฝ๊ณ /์‚ญ์ œ ์กฐ์น˜ ๋ฐ ๊ธฐ๋ก
  • ํ•„์š”์— ๋”ฐ๋ผ ๊ธฐ๊ฐ ์ฒ˜๋ฆฌ

  • ๊ฒฝ๊ณ /์‚ญ์ œ ์‹œ ๋Œ€์ƒ์ž์—๊ฒŒ ์•Œ๋ฆผ ๋ฐœํ–‰
ํ•˜๋น„์œ„ํ‚ค

ํ•˜๋น„์œ„ํ‚ค

  • ์ˆ˜์ง‘๊ฐ€๋“ค๋งŒ์˜ ์ •๋ณด ๊ณต์œ ๋ฅผ ์œ„ํ•ด ์ž์ฒด ์œ„ํ‚ค ์ œ๊ณต
  • OPENNamu ํ™œ์šฉ

  • ๋‚˜๋ฌด์œ„ํ‚ค์™€ ์œ ์‚ฌํ•œ UI๋กœ ์ •๋ณด ์ œ๊ณต
  • NamuMark ์–ธ์–ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํŽธ์ง‘ ๊ฐ€๋Šฅ

6. ๋ฐฐํฌ ๋ฐ ์‹œ์Šคํ…œ ๊ตฌ์กฐ

๋ฐฐํฌ

  • Github์˜ webhook, Jenkins ๋ฐ Docker๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ž๋™ ๋ฐฐํฌ ํ™˜๊ฒฝ ๊ตฌ์ถ•
  • ๊ฐœ๋ฐœ์„œ๋ฒ„๋Š” Git Push ๋ฐœ์ƒ ์‹œ ์ž๋™์œผ๋กœ Jenkins Build ์ง„ํ–‰
  • ์šด์˜์„œ๋ฒ„๋Š” ๊ฐœ๋ฐœ์ž ๊ฒ€ํ†  ํ›„ ์ˆ˜๋™ Build ์ง„ํ–‰ ๋ฐ ์ด์ค‘ํ™” ๋ฐฐํฌ

์‹œ์Šคํ…œ ๊ตฌ์กฐ

  • ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ ์‹œ Application Load Balancer๊ฐ€ Round Robin์œผ๋กœ ๋ถ„๋ฐฐ
  • ์„œ๋ฒ„๋Š” ๋‹จ์ผ Storage, ๋‹จ์ผ Database๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ Standby Database๋กœ ์žฅ์•  ๋Œ€๋น„
  • ๋‹ค์ค‘์„œ๋ฒ„๊ฐ„ ๋ฉ”์‹œ์ง€ ์ „์†ก์„ ์œ„ํ•ด Apache Kafka ํ™œ์šฉ
  • NCP Certification Manager๋กœ SSL ์ ์šฉ
  • NCP Image Optimizer๋กœ ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ฆˆ ๋ฐ ํฌ๋กญ
  • Moum ๋„๋ฉ”์ธ๊ณผ Wiki ๋„๋ฉ”์ธ ์š”์ฒญ ๊ตฌ๋ถ„์„ ์œ„ํ•ด Nginx ๋ฆฌ๋ฒ„์Šค ํ”„๋ก์‹œ ์ ์šฉ

7. ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ณ€๊ฒฝ ์˜ค๋ฅ˜

ํ˜„์ƒ

์šด์˜ ์„œ๋ฒ„ ์ด์ค‘ํ™” ์ดํ›„, ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ณ€๊ฒฝ ์‹œ ์„œ๋ฒ„ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ•ด๊ฒฐ์‹œ๋„ 1

์›์ธ : Spring ์šฉ๋Ÿ‰ ์„ค์ •, ๋˜๋Š” NCP Storage ์šฉ๋Ÿ‰ ์„ค์ • ๋ฌธ์ œ๋กœ ์ถ”์ธก

์‹œ๋„ : Spring ๋ฐ Storage ์šฉ๋Ÿ‰ ์„ค์ • ์žฌํ™•์ธ

๊ฒฐ๊ณผ : Local ๋ฐ Dev์—์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•จ์„ ํ™•์ธํ•˜์˜€์œผ๋‚˜, ์šด์˜์„œ๋ฒ„์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ•ด๊ฒฐ์‹œ๋„ 2

์›์ธ : ๋‹ค์ค‘ ๋„๋ฉ”์ธ ๋ฐ SSL ์ ์šฉ์„ ์œ„ํ•ด ์šด์˜์„œ๋ฒ„์— nginx๋ฅผ ๋„์ž…ํ•˜์˜€๋Š”๋ฐ, ์„ค์ • ์šฉ๋Ÿ‰ ๊ธฐ๋ณธ๊ฐ’์ด 1M์ธ ๊ฒƒ์„ ํ™•์ธ

์‹œ๋„ : ํด๋ผ์ด์–ธํŠธ ์ตœ๋Œ€ ๋ฐ”๋”” ์‚ฌ์ด์ฆˆ๋ฅผ 100M์œผ๋กœ ๋ณ€๊ฒฝ

๊ฒฐ๊ณผ : ์šด์˜ ์„œ๋ฒ„์—์„œ ํ”„๋กœํ•„ ์‚ฌ์ง„ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•จ์„ ํ™•์ธ

๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„ ๋“ฑ๋ก ์˜ค๋ฅ˜

ํ˜„์ƒ

๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„ ์ฒจ๋ถ€ ์‹œ, ๊ฒŒ์‹œ๊ธ€ ๋“ฑ๋ก์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ์ฒจ๋ถ€ ์ฆ‰์‹œ Storage์— ์ €์žฅ๋˜๋Š” ๋ฌธ์ œ ํ™•์ธ

ํ•ด๊ฒฐ์‹œ๋„

์›์ธ : Summernote Editor์—์„œ ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ํ›„์ฒ˜๋ฆฌ ์‹œ ๋ฐ”๋กœ Storage์— ์—…๋กœ๋“œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ

์‹œ๋„

  • ์ด๋ฏธ์ง€ ์ฒจ๋ถ€ ์‹œ Base64 ๋ฐ์ดํ„ฐ๋กœ Summernote content์— ์ €์žฅ
  • ์„œ๋ฒ„์— ๋“ฑ๋ก ์š”์ฒญ ์‹œ content ๋‚ด Base64๋ฅผ ํƒ์ง€
  • ํƒ์ง€๋œ ๋ฐ์ดํ„ฐ๋ฅผ Storage์— ์—…๋กœ๋“œํ•œ ํ›„ URL์„ ๋ฐ˜ํ™˜๋ฐ›์•„ content ์น˜ํ™˜

๊ฒฐ๊ณผ : ๊ฒŒ์‹œ๊ธ€ ์‚ฌ์ง„ ์ฒจ๋ถ€ ์ •์ƒ ์ž‘๋™ ํ™•์ธ

Opennamu Docker container ์˜ค๋ฅ˜

ํ˜„์ƒ

์˜คํ”ˆ์†Œ์Šค์ธ Opennamu ํ™œ์šฉ์„ ์‹œ๋„ํ•˜์˜€์œผ๋‚˜, ์ œ๊ณต๋œ Dockerfile์ด ์ •์ƒ ๋™์ž‘ํ•˜์ง€ ์•Š์•„ container ์‹คํ–‰ ๋ถˆ๊ฐ€

ํ•ด๊ฒฐ์‹œ๋„

์›์ธ : Opennamu ์†Œ์Šค ๋‚ด Dockerfile์€ ์กด์žฌํ•˜๋‚˜, ๊ณต์‹์ ์œผ๋กœ๋Š” Docker๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ

์‹œ๋„ : ๋ณ„๋„ Ubuntu container ๋‚ด๋ถ€์—์„œ Opennamu๋ฅผ ๋‚ด๋ ค๋ฐ›์•„ ์ง์ ‘ ์‹คํ–‰

๊ฒฐ๊ณผ : Docker container ์‹คํ–‰ ํ™•์ธ

์ฑ„ํŒ… Socket ํ†ต์‹  ๋ถˆ๊ฐ€

ํ˜„์ƒ

์šด์˜์„œ๋ฒ„ ์ด์ค‘ํ™” ์ดํ›„, ์ฑ„ํŒ…๋ฐฉ ์ž…์žฅ ์‹œ 403 ์—๋Ÿฌ ๋ฐœ์ƒ์œผ๋กœ Socket ํ†ต์‹  ์—ฐ๊ฒฐ ๋ถˆ๊ฐ€

ํ•ด๊ฒฐ์‹œ๋„ 1

์›์ธ : ๊ธฐ์กด Socketํ†ต์‹ ์ด ๋‹จ์ผ์„œ๋ฒ„ ๋‚ด ์ด๋ฃจ์–ด์ง€๋„๋ก ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด, ALB ๋ฐ ์ด์ค‘ํ™” ๊ตฌ์กฐ์—์„œ ์˜ค๋ฅ˜ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถ”์ธก

์‹œ๋„ : ๋ฉ”์‹œ์ง€ ์ค‘๊ฐœ์ž๋กœ์„œ Kafka๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋‹ค์ค‘์„œ๋ฒ„ ๊ฐ„ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์„ ๊ธฐ๋Œ€

๊ฒฐ๊ณผ : Local ๋ฐ Dev์—์„œ Kafka๋ฅผ ํ†ตํ•ด ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•จ์„ ํ™•์ธํ–ˆ์œผ๋‚˜, ์šด์˜์„œ๋ฒ„์—์„œ๋Š” ๋™์ผํ•œ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

ํ•ด๊ฒฐ์‹œ๋„ 2

์›์ธ : ๋‹ค์ค‘ ๋„๋ฉ”์ธ ๋ฐ SSL ์ ์šฉ์„ ์œ„ํ•ด ์šด์˜์„œ๋ฒ„์— nginx๋ฅผ ๋„์ž…ํ•˜์˜€๋Š”๋ฐ, Websocket ๊ฒฝ๋กœ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ

์‹œ๋„ : /ws ๊ฒฝ๋กœ๋กœ ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ์„ WebSocket ํ”„๋กœํ† ์ฝœ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋„๋ก ์„ค์ • ์ถ”๊ฐ€

๊ฒฐ๊ณผ : ์šด์˜ ์„œ๋ฒ„์—์„œ์˜ Socket ํ†ต์‹  ์„ฑ๊ณต ํ™•์ธ

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages