⻠보μμμ μ΄μ λ‘ μ½λλ 곡κ°λμ§ μμ΅λλ€.
λ€μν μ½ν μΈ λ‘ ν보νκ³ μΆμ κΈ°μ λ€μ μν κ³ κ° λ§μΆ€ν ννμ΄μ§ μλ μμ± λ° μ΄μ μλΉμ€μ λλ€.
ν΄λΌμ°λ κΈ°λ° νλ«νΌμΌλ‘, AWSλ₯Ό νμ©νμ¬ μμ½κ² κ³ μ ν μΉμ¬μ΄νΈλ₯Ό ꡬμΆν μ μμ΅λλ€.
μ¬μ©μλ URLμ μ§μ μ§μ νκ³ μ΄λ―Έμ§λ₯Ό μ λ‘λνμ¬ μμ λ§μ μΉμ¬μ΄νΈλ₯Ό μμ±ν μ μμ΅λλ€. λν, λ°©λ¬Έμ μ, λ°©λ¬Έ νμ, μ€ν λ¦¬μ§ μ©λ, νΈλν½ λ± μ£Όμ μ§νλ₯Ό μ€μκ°μΌλ‘ λͺ¨λν°λ§νμ¬ λΉμ¦λμ€ μ±κ³Όλ₯Ό μ μνκ² μΆμ ν μ μμ΅λλ€.
2024.05.03 ~ 2024.07.22
[κ°λ³ μ¬μ©μμ κ΄λ¦¬ νμ΄μ§]

[μ 체 μλΉμ€μ κ΄λ¦¬μ νμ΄μ§]

| κΈ°λ₯ | μ€λͺ |
|---|---|
| μλμΌλ‘ μΉμ¬μ΄νΈ μμ± | μ¬μ©μ μꡬμ λ§μΆ ꡬμ±μ μΉμ¬μ΄νΈλ₯Ό μλμΌλ‘ μμ±ν©λλ€. AWSμ S3, Route 53, CloudFront, ACMμ νμ©νμ¬ λμ λλ©μΈμ μμ±ν©λλ€. |
| μ¬μ©μ μ§μ URL μ 곡 | μ¬μ©μκ° μνλ μ΄λ¦μ΄ ν¬ν¨λ κ³ μ ν URLμ μμ±νμ¬ μκ° νμ΄μ§λ₯Ό μ 곡ν©λλ€. μλ₯Ό λ€μ΄, "goodcompany"λΌλ μ΄λ¦μ URLμ ν¬ν¨νμ¬ goodcompany.webbizcraft.shopκ³Ό κ°μ URLμ μ 곡ν μ μμ΅λλ€. μ¬μ©μλ μ΄ 3κ°μ μΉμ¬μ΄νΈλ₯Ό μμ±ν μ μμΌλ©°, κ° μΉμ¬μ΄νΈλ μ¬μ©μκ° μ§μ μ§μ νμ¬ κ³ μ ν URLμ κ°μ§ μ μμ΅λλ€. |
| λ―Έλμ΄ μ½ν μΈ μ λ‘λ | μ¬μ§, λμμ, ν μ€νΈ λ± λ€μν μ½ν μΈ λ₯Ό μ λ‘λνμ¬ κΈ°μ μκ°μ νμ©ν μ μμ΅λλ€. |
| νΈλν½ μΈ‘μ λ° μ ν | μΌ λ¨μμ νΈλν½μ λ€μν μ§κ³ λ°©μμΌλ‘ μΈ‘μ νλ©°, Bucket4jμ Redis(Lettuce)λ₯Ό νμ©νμ¬ κ° μΉμ¬μ΄νΈμ νΈλν½μ 100MB μ΄νλ‘ μ ννμ¬ μλ² λΆνλ₯Ό κ΄λ¦¬ν©λλ€. μΆκ° νΈλν½/μ©λ μμ² μ νΈλν½/μ©λμ ν λΉν μ μμ΅λλ€. |
| μλ² μ©λ μΈ‘μ | ννμ΄μ§κ° μλ²μμ νμ¬ μ¬μ©νκ³ μλ μ©λμ μ€μκ°μΌλ‘ λͺ¨λν°λ§νμ¬, μ¬μ©μκ° λ°μ΄ν°λ₯Ό μΌλ§λ μ μ₯νκ³ μλμ§ νμ ν μ μμ΅λλ€. AWS CloudWatchλ₯Ό ν΅ν΄ κ° μΉμ¬μ΄νΈμ μ€ν λ¦¬μ§ μ©λμ μ€μκ°μΌλ‘ λͺ¨λν°λ§ν©λλ€. |
| μ€μκ° νΈλν½ λͺ¨λν°λ§ λ° μλ¦Ό | μ€μκ° νΈλν½ λͺ¨λν°λ§μ ν΅ν΄ νΈλν½μ΄ 100MBλ₯Ό λμΌλ©΄ μλ¦Όμ΄ κ°λλ‘ μ€μ νμ¬ μ€μκ°μΌλ‘ λͺ¨λν°λ§νκ³ λμν©λλ€. |
| μ 체 κ΄λ¦¬μ κΈ°λ₯ μ 곡 | Admin μ§μμΌλ‘ μ¬μ΄ μ΄μ κ΄λ¦¬κ° κ°λ₯νλ©°, νΈλν½, μ©λ, μ λ‘λ νμΌ λͺ©λ‘ λ±μ μ 보λ₯Ό μΌκ΄μ μΌλ‘ κ΄λ¦¬ν©λλ€. νΈλν½ λλ μ©λμ΄ μ νμ μ΄κ³Όνλ©΄ μΆκ° μ‘°μΉκ° νμν λμλ€μ μλμΌλ‘ κ²½κ³ ν©λλ€. |
| μΆκ° νΈλν½/μ©λ μ 곡 | μ¬μ©μ μμ² μ μΆκ°μ μΈ νΈλν½/μ©λμ ν λΉν μ μμ΅λλ€. |
| κ°λ³ μ¬μ΄νΈ κ΄λ¦¬ | νΈλν½κ³Ό μ©λ λ°μ΄ν°λ₯Ό μ¬μ©μκ° κ°λ³ μ¬μ΄νΈ κ΄λ¦¬νμ΄μ§μμ νμΈν μ μμ΅λλ€. μ¬μ©μκ° μΉμ¬μ΄νΈλ₯Ό μμ±νκ±°λ μμ ν λ μλΉμ€ κ΄λ¦¬μμ μΉμΈμ λ°μ μ§μμ μΈ ν΅ν© κ΄λ¦¬λ₯Ό μ§μν©λλ€. |
| μ§μμ μΈ ν΅ν© κ΄λ¦¬ | μ¬μ©μκ° μΉμ¬μ΄νΈλ₯Ό μμ± λλ μμ ν λ μλΉμ€ κ΄λ¦¬μμ μΉμΈμ ν΅ν μ§μμ μΈ ν΅ν© κ΄λ¦¬λ₯Ό μ§μν©λλ€. |
- SpringBoot
- JPA
- MySQL
- Redis
- AWS
- EC2
- S3
- CloudFront
- Route53
- CloudWatch
- Docker
- Bucket4j
- Lettuce
- Nginx
- Jenkins
- Spring Boot Starter
- JWT
- Swagger
- Firebase
- OkHttp
- QueryDSL
- Lombok
- Jackson
- AWS SDK
- CloudWatch
- Route53
- CloudFront
- S3
- Database
- H2
- MySQL Connector
- Redis
- Redisson
- Embedded Redis
- Bucket4j Core
- Bucket4j Redis
- Logging
- Discord Appender
βββ π main
βββ π java
β βββ π com
β βββ π example
β βββ π cloudservice
β βββ π CloudServiceApplication.java
β βββ π auth
β β βββ π cookie
β β β βββ π CookieUtil.java
β β βββ π entity
β β β βββ π RefreshToken.java
β β βββ π jwt
β β β βββ π JwtAuthenticationFilter.java
β β β βββ π JwtAuthorizationFilter.java
β β β βββ π JwtProvider.java
β β β βββ π MemberDetails.java
β β β βββ π MemberDetailsService.java
β β βββ π repository
β β β βββ π RefreshTokenRepository.java
β β βββ π service
β β β βββ π RefreshTokenService.java
β β βββ π MemberRole.java
β βββ π cofig
β β βββ π Bucket4j
β β β βββ π TokenBucketResolver.java
β β βββ π CloudWatch
β β β βββ π CloudWatchConfig.java
β β βββ π jpa
β β β βββ π JpaAuditingConfig.java
β β βββ π mail
β β β βββ π MailConfig.java
β β βββ π RateLimit
β β β βββ π RateLimitAspect.java
β β β βββ π RateLimiterConfig.java
β β βββ π redis
β β β βββ π RedisCacheConfig.java
β β β βββ π RedisConfig.java
β β βββ π redisson
β β β βββ π RedissonConfig.java
β β βββ π s3
β β β βββ π awstest.java
β β β βββ π S3Config.java
β β βββ π security
β β β βββ π SecurityConfig.java
β β β βββ π SecurityUtils.java
β β βββ π swagger
β β βββ π SwaggerConfig.java
β βββ π global
β β βββ π base
β β β βββ π BaseTimeEntity.java
β β βββ π common
β β β βββ π CommonResDto.java
β β βββ π dto
β β β βββ π CommonResponse.java
β β β βββ π ErrorResponse.java
β β βββ π error
β β β βββ π BucketCapacityException.java
β β β βββ π DuplicateAccountException.java
β β β βββ π DuplicateUrlException.java
β β β βββ π EncryptException.java
β β β βββ π FileTooLargeException.java
β β β βββ π InvalidTokenException.java
β β β βββ π NotFoundAccountException.java
β β β βββ π PasswordNotMatchException.java
β β β βββ π S3UploadException.java
β β β βββ π UnAuthorizedException.java
β β β βββ π WebsiteLimitException.java
β β β βββ π WebsiteNotFoundException.java
β β βββ π log
β β β βββ π FilterConfig.java
β β β βββ π MDCFilter.java
β β βββ π ErrorCodes.java
β β βββ π ErrorResponse.java
β β βββ π GlobalExceptionHandler.java
β β βββ π GlobalExceptionHandlerFilter.java
β βββ π member
β β βββ π application
β β β βββ π dto
β β β β βββπ MemberResponseDto.java
β β β β βββπ MemeberRequestDto.java
β β β βββ π impl
β β β β βββπ MailServiceImpl.java
β β β β βββπ MemberServiceImpl.java
β β β β βββπ MiddleTableServiceImpl.java
β β β βββ π MemberService.java
β β β βββ π MiddleTableService.java
β β βββ π domain
β β β βββ π repository
β β β β βββπ MemberRepository.java
β β β β βββπ MiddleTableRepository.java
β β β βββ π Member.java
β β β βββ π MiddleTable.java
β β βββ π exception
β β β βββ π dto
β β β βββπ CommonResDto.java
β β β βββπ CommonResponse.java
β β βββ π presentation
β β β βββ π MemberController.java
β β βββ π restapi
β β β βββ π MemberApi.java
β β βββ π utils
β β βββ π MemberScheduler.java
β β βββ π MemberUtils.java
β βββ π visit
β β βββ π application
β β β βββ π dto
β β β β βββπ VisitResponseDto.java
β β β βββ π impl
β β β β βββπ VisitRedisService.java
β β β β βββπ VisitServiceImpl.java
β β β βββ π VisitService.java
β β βββ π domain
β β β βββ π repository
β β β β βββπ VisitRepository.java
β β β β βββπ VisitRepositoryImpl.java
β β β β βββπ VisitRepositoryJPA.java
β β β βββ π Visit.java
β β βββ π exception
β β β βββ π dto
β β β β βββπ CommonResponse.java
β β β β βββπ RateLimiterException.java
β β βββ π presentation
β β β βββ π VisitController.java
β β βββ π restapi
β β β βββ π VisitApi.java
β β βββ π scheduler
β β βββ π VisitScheduler.java
β βββ π websiteaa
β βββ π application
β β βββ π dto
β β β βββπ WebsiteaaRequestDto.java
β β β βββπ WebsiteaaResponseDto.java
β β βββ π impl
β β β βββπ WebsiteaaServiceImpl.java
β β βββ π WebsiteaaService.java
β βββ π domain
β β βββ π repository
β β β βββπ WebsiteaaRepository.java
β β βββ π Template.java
β β βββ π Websiteaa.java
β βββ π exception
β β βββ π dto
β β βββπ CommonResponse.java
β βββ π presentation
β β βββ π WebsiteaaController.java
β βββ π restapi
β β βββ π WebsiteaaApi.java
β βββ π utils
β βββ π MultipartJackson2HttpMessageConverter.java
β βββ π WebsiteaaEnums.java
β βββ π WebsiteaaUtils.java
βββ π resources
βββ π scripts
β βββ π getVisitCounts.lua
β βββ π incrementVisitCount.lua
βββ π temlates
β βββ π bizcraft_logo.png
β βββ π email-template.html
βββ π application.yaml
βββ π application-dev.yml
βββ π application-local.yml
βββ π application-prod.yml
βββ π application-test.yml
βββ π logback.xml

