# jungho1123/lg_cns_07_03 architecture

> Architecture diagram of the GitHub repository jungho1123/lg_cns_07_03, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jungho1123/lg_cns_07_03
- Repository: https://github.com/jungho1123/lg_cns_07_03

## Overview

This is a Next.js social community frontend: users authenticate, browse or write posts, interact through likes and comments, and manage profiles and notifications. The graph follows the sampled post-listing, authentication, avatar, and notification paths, while retaining the distinct post-detail and interaction modules visible in the tree. Several action and UI implementations were not sampled, so uncertain links are omitted; the Spring API is represented as an external service.

Main entry points: [`app/posts/page.tsx`](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/page.tsx) (Post listing), [`service/spring/postReadService.ts`](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/postReadService.ts) (Post reads), [`app/posts/[postId]/page.tsx`](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/%5BpostId%5D/page.tsx) (Post detail), [`app/mypage/page.tsx`](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/mypage/page.tsx) (My page)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_auth["Identity"]
  node_login["Login page<br/>[page.tsx]"]
  node_signup["Signup page<br/>[page.tsx]"]
  node_auth_actions["Auth actions<br/>[authActions.ts]"]
  node_signup_actions["Signup actions<br/>[signupActions.ts]"]
end

subgraph group_posts["Posts"]
  node_posts_page["Post listing<br/>[page.tsx]"]
  node_post_feed["Post feed<br/>[PostFeed.tsx]"]
  node_post_detail["Post detail<br/>[page.tsx]"]
  node_post_composer["Post composer<br/>[PostComposer.tsx]"]
  node_post_actions["Post actions<br/>[postActions.ts]"]
end

subgraph group_community["Interactions"]
  node_post_likes["Post likes<br/>[PostLikeButton.tsx]"]
  node_like_actions["Like actions<br/>[likeActions.ts]"]
  node_comments["Comments<br/>[CommentList.tsx]"]
  node_comment_actions["Comment actions<br/>[commentActions.ts]"]
  node_reactions["Reactions<br/>[reactionActions.ts]"]
  node_notifications["Notifications<br/>[route.ts]"]
end

subgraph group_profile["Profile"]
  node_my_page["My page<br/>[page.tsx]"]
  node_avatar_edit["Avatar editing<br/>[AvatarEdit.tsx]"]
  node_avatar_route["Avatar route<br/>[route.ts]"]
end

subgraph group_integration["Backend access"]
  node_auth_service["Auth service<br/>[authService.ts]"]
  node_post_reads["Post reads<br/>[postReadService.ts]"]
  node_post_writes["Post writes"]
  node_notification_service["Notification service"]
  node_avatar_service["Avatar service<br/>[avatarService.ts]"]
end

node_visitor(("Visitor"))
node_spring_api{{"Spring API"}}

node_visitor -->|"opens"| node_login
node_visitor -->|"opens"| node_signup
node_login -.->|"submits to"| node_auth_actions
node_signup -.->|"submits to"| node_signup_actions
node_auth_actions -->|"calls"| node_auth_service
node_signup_actions -->|"calls"| node_auth_service
node_auth_service -->|"requests"| node_spring_api
node_visitor -->|"opens"| node_posts_page
node_posts_page -->|"loads posts"| node_post_reads
node_posts_page -->|"renders"| node_post_composer
node_posts_page -->|"renders"| node_post_feed
node_post_feed -->|"renders"| node_post_likes
node_post_likes -->|"invokes"| node_like_actions
node_visitor -->|"opens"| node_post_detail
node_post_detail -->|"loads post"| node_post_reads
node_post_detail -->|"renders"| node_comments
node_post_composer -->|"submits to"| node_post_actions
node_visitor -->|"opens"| node_my_page
node_my_page -->|"loads my posts"| node_post_reads
node_my_page -->|"renders"| node_avatar_edit
node_avatar_route -->|"calls"| node_avatar_service
node_notifications -->|"calls"| node_notification_service
node_notification_service -->|"requests"| node_spring_api
node_avatar_service -->|"requests"| node_spring_api
node_post_reads -->|"requests"| node_spring_api

click node_login "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/(auth)/login/page.tsx"
click node_signup "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/(auth)/signup/page.tsx"
click node_auth_actions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/authActions.ts"
click node_signup_actions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/signupActions.ts"
click node_auth_service "https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/authService.ts"
click node_posts_page "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/page.tsx"
click node_post_feed "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostFeed.tsx"
click node_post_detail "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/%5BpostId%5D/page.tsx"
click node_post_composer "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostComposer.tsx"
click node_post_actions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/postActions.ts"
click node_post_reads "https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/postReadService.ts"
click node_post_writes "https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/postWriteService.ts"
click node_post_likes "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostLikeButton.tsx"
click node_like_actions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/likeActions.ts"
click node_comments "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/%5BpostId%5D/CommentList.tsx"
click node_comment_actions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/commentActions.ts"
click node_reactions "https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/reactionActions.ts"
click node_notifications "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/api/notifications/route.ts"
click node_notification_service "https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/notificationService.ts"
click node_my_page "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/mypage/page.tsx"
click node_avatar_edit "https://github.com/jungho1123/lg_cns_07_03/blob/main/components/organisms/AvatarEdit.tsx"
click node_avatar_route "https://github.com/jungho1123/lg_cns_07_03/blob/main/app/api/avatars/%5BuserId%5D/route.ts"
click node_avatar_service "https://github.com/jungho1123/lg_cns_07_03/blob/main/service/avatarService.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_login,node_signup,node_auth_actions,node_signup_actions toneBlue
class node_posts_page,node_post_feed,node_post_detail,node_post_composer,node_post_actions toneAmber
class node_post_likes,node_like_actions,node_comments,node_comment_actions,node_reactions,node_notifications,node_spring_api toneMint
class node_my_page,node_avatar_edit,node_avatar_route toneRose
class node_auth_service,node_post_reads,node_post_writes,node_notification_service,node_avatar_service,node_visitor toneIndigo
```

## Components

### Identity

- [Login page](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/(auth)/login/page.tsx): `app/(auth)/login/page.tsx`
- [Signup page](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/(auth)/signup/page.tsx): `app/(auth)/signup/page.tsx`
- [Auth actions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/authActions.ts): `actions/authActions.ts`
- [Signup actions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/signupActions.ts): `actions/signupActions.ts`

### Posts

- [Post listing](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/page.tsx): `app/posts/page.tsx`
- [Post feed](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostFeed.tsx): `app/posts/PostFeed.tsx`
- [Post detail](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/%5BpostId%5D/page.tsx): `app/posts/[postId]/page.tsx`
- [Post composer](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostComposer.tsx): `app/posts/PostComposer.tsx`
- [Post actions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/postActions.ts): `actions/postActions.ts`

### Interactions

- [Post likes](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/PostLikeButton.tsx): `app/posts/PostLikeButton.tsx`
- [Like actions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/likeActions.ts): `actions/likeActions.ts`
- [Comments](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/posts/%5BpostId%5D/CommentList.tsx): `app/posts/[postId]/CommentList.tsx`
- [Comment actions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/commentActions.ts): `actions/commentActions.ts`
- [Reactions](https://github.com/jungho1123/lg_cns_07_03/blob/main/actions/reactionActions.ts): `actions/reactionActions.ts`
- [Notifications](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/api/notifications/route.ts): `app/api/notifications/route.ts`

### Profile

- [My page](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/mypage/page.tsx): `app/mypage/page.tsx`
- [Avatar editing](https://github.com/jungho1123/lg_cns_07_03/blob/main/components/organisms/AvatarEdit.tsx): `components/organisms/AvatarEdit.tsx`
- [Avatar route](https://github.com/jungho1123/lg_cns_07_03/blob/main/app/api/avatars/%5BuserId%5D/route.ts): `app/api/avatars/[userId]/route.ts`

### Backend access

- [Auth service](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/authService.ts): `service/spring/authService.ts`
- [Post reads](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/postReadService.ts): `service/spring/postReadService.ts`
- [Post writes](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/postWriteService.ts): `service/spring/postWriteService.ts`
- [Notification service](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/spring/notificationService.ts): `service/spring/notificationService.ts`
- [Avatar service](https://github.com/jungho1123/lg_cns_07_03/blob/main/service/avatarService.ts): `service/avatarService.ts`

### Other components

- **Visitor**
- **Spring API**

## Connections

- Visitor → Login page: opens (evidence: `app/(auth)/login/page.tsx`)
- Visitor → Signup page: opens (evidence: `app/(auth)/signup/page.tsx`)
- Login page → Auth actions: submits to
- Signup page → Signup actions: submits to
- Auth actions → Auth service: calls (evidence: `actions/authActions.ts`)
- Signup actions → Auth service: calls (evidence: `actions/signupActions.ts`)
- Auth service → Spring API: requests (evidence: `service/spring/authService.ts`)
- Visitor → Post listing: opens (evidence: `app/posts/page.tsx`)
- Post listing → Post reads: loads posts (evidence: `app/posts/page.tsx`)
- Post listing → Post composer: renders (evidence: `app/posts/page.tsx`)
- Post listing → Post feed: renders (evidence: `app/posts/page.tsx`)
- Post feed → Post likes: renders (evidence: `app/posts/PostFeed.tsx`)
- Post likes → Like actions: invokes (evidence: `app/posts/PostLikeButton.tsx`)
- Visitor → Post detail: opens (evidence: `app/posts/[postId]/page.tsx`)
- Post detail → Post reads: loads post (evidence: `app/posts/[postId]/page.tsx`)
- Post detail → Comments: renders (evidence: `app/posts/[postId]/page.tsx`)
- Post composer → Post actions: submits to (evidence: `app/posts/PostComposer.tsx`)
- Visitor → My page: opens (evidence: `app/mypage/page.tsx`)
- My page → Post reads: loads my posts (evidence: `app/mypage/page.tsx`)
- My page → Avatar editing: renders (evidence: `app/mypage/page.tsx`)
- Avatar route → Avatar service: calls (evidence: `app/api/avatars/[userId]/route.ts`)
- Notifications → Notification service: calls (evidence: `app/api/notifications/route.ts`)
- Notification service → Spring API: requests (evidence: `service/spring/notificationService.ts`)
- Avatar service → Spring API: requests (evidence: `service/avatarService.ts`)
- Post reads → Spring API: requests (evidence: `service/spring/postReadService.ts`)
