diff --git a/src/main/java/umc/spring/board/conroller/BoardController.java b/src/main/java/umc/spring/board/conroller/BoardController.java
deleted file mode 100644
index c82ace7c41d89c8c6ba1bc5c50afb2e6e56fbccf..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/conroller/BoardController.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package umc.spring.board.conroller;
-
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.*;
-import umc.spring.board.domain.Board;
-import umc.spring.board.dto.BoardRequestDto;
-import umc.spring.board.dto.BoardResponseDto;
-import umc.spring.board.repository.BoardRepository;
-
-import java.util.List;
-
-@RestController
-@RequiredArgsConstructor
-@RequestMapping("/api/posts")
-public class BoardController {
-
-    private final BoardRepository boardRepository;
-
-    @PostMapping("/upload")
-    public void upload(@RequestBody BoardRequestDto boardDto){
-        System.out.println(boardDto);
-        Board board = boardDto.toBoard();
-        boardRepository.save(board);
-    }
-
-    @GetMapping("/")
-    public List<BoardResponseDto> getPosts(){
-        return boardRepository.findAll().stream().map(BoardResponseDto::toDto).toList();
-    }
-
-    @GetMapping("/{id}")
-    public BoardResponseDto getPost(@PathVariable(name="id") Long boardId){
-        return BoardResponseDto.toDto(boardRepository.findById(boardId).orElseThrow(RuntimeException::new));
-    }
-}
diff --git a/src/main/java/umc/spring/board/domain/Board.java b/src/main/java/umc/spring/board/domain/Board.java
deleted file mode 100644
index fdf04c7cb437ef347cee814e412f7a747afd2fbc..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/domain/Board.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package umc.spring.board.domain;
-
-import jakarta.persistence.*;
-import lombok.*;
-import org.hibernate.annotations.CreationTimestamp;
-import umc.spring.member.domain.Member;
-
-import java.sql.Date;
-
-@Entity
-@Getter
-@Setter
-public class Board {
-
-    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    private String title;
-
-    private String author;
-
-    private String body;
-
-    @CreationTimestamp
-    private Date date;
-
-    @ManyToOne(fetch = FetchType.LAZY)
-    @JoinColumn(name = "member_id")
-    Member member;
-
-    protected Board(){}
-
-    @Builder
-    public Board(String title, String author, String body) {
-        this.title = title;
-        this.author = author;
-        this.body = body;
-    }
-}
diff --git a/src/main/java/umc/spring/board/dto/BoardRequestDto.java b/src/main/java/umc/spring/board/dto/BoardRequestDto.java
deleted file mode 100644
index 37e6818cc57bd6986d86e827194f59f737c041d7..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/dto/BoardRequestDto.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package umc.spring.board.dto;
-
-
-import lombok.Builder;
-import lombok.Getter;
-import lombok.Setter;
-import umc.spring.board.domain.Board;
-
-@Getter
-@Setter
-public class BoardRequestDto {
-
-    private String title;
-
-    private String author;
-
-    private String body;
-
-    @Builder
-    public BoardRequestDto(String title, String author, String body) {
-        this.title = title;
-        this.author = author;
-        this.body = body;
-    }
-
-    public Board toBoard() {
-        return Board.builder()
-                .author(this.getAuthor())
-                .title(this.getTitle())
-                .body(this.getBody())
-                .build();
-    }
-}
diff --git a/src/main/java/umc/spring/board/dto/BoardResponseDto.java b/src/main/java/umc/spring/board/dto/BoardResponseDto.java
deleted file mode 100644
index 29950a4417e97f229e4998542113e2fc14a7ac4e..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/dto/BoardResponseDto.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package umc.spring.board.dto;
-
-import lombok.Builder;
-import lombok.Getter;
-import lombok.Setter;
-import umc.spring.board.domain.Board;
-
-@Getter
-@Setter
-public class BoardResponseDto {
-
-    private Long id;
-
-    private String title;
-
-    private String author;
-
-    private String body;
-
-    @Builder
-    public BoardResponseDto(Long id, String title, String author, String body) {
-        this.id = id;
-        this.title = title;
-        this.author = author;
-        this.body = body;
-    }
-
-    public static BoardResponseDto toDto(Board board){
-        return BoardResponseDto.builder()
-                .id(board.getId())
-                .body(board.getBody())
-                .title(board.getTitle())
-                .author(board.getAuthor())
-                .build();
-    }
-}
diff --git a/src/main/java/umc/spring/board/repository/BoardRepository.java b/src/main/java/umc/spring/board/repository/BoardRepository.java
deleted file mode 100644
index 4c9b4b74e72e1ba6a8788a755a085f5d0dcea4c3..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/repository/BoardRepository.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package umc.spring.board.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import umc.spring.board.domain.Board;
-
-import java.util.Optional;
-
-public interface BoardRepository extends JpaRepository<Board, Long> {
-    Optional<Board> findById(Long id);
-}
\ No newline at end of file
diff --git a/src/main/java/umc/spring/board/service/BoardService.java b/src/main/java/umc/spring/board/service/BoardService.java
deleted file mode 100644
index 82a99ffa3d474b1592ead89e43ee740060b154aa..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/board/service/BoardService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package umc.spring.board.service;
-
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-@Service
-@Transactional(readOnly = true)
-public class BoardService {
-}
diff --git a/src/main/java/umc/spring/member/controller/MemberController.java b/src/main/java/umc/spring/member/controller/MemberController.java
deleted file mode 100644
index 29c005aee19e7e1e6d11706f9324231d45555d56..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/member/controller/MemberController.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package umc.spring.member.controller;
-
-public class MemberController {
-}
diff --git a/src/main/java/umc/spring/member/domain/Member.java b/src/main/java/umc/spring/member/domain/Member.java
deleted file mode 100644
index 6b228957e1f36ba1fcd58bd3aa1afa68ef6d25be..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/member/domain/Member.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package umc.spring.member.domain;
-
-import jakarta.persistence.*;
-import lombok.Getter;
-
-@Entity
-@Getter
-public class Member {
-
-    @Id
-    @GeneratedValue(strategy = GenerationType.IDENTITY)
-    private Long id;
-
-    private String username;
-
-}
diff --git a/src/main/java/umc/spring/member/dto/MemberRequestDto.java b/src/main/java/umc/spring/member/dto/MemberRequestDto.java
deleted file mode 100644
index e7e87cd5666032d2bb0934193ca06ed9b1cbc9f8..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/member/dto/MemberRequestDto.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package umc.spring.member.dto;
-
-public class MemberRequestDto {
-}
diff --git a/src/main/java/umc/spring/member/repository/MemberRepository.java b/src/main/java/umc/spring/member/repository/MemberRepository.java
deleted file mode 100644
index 8d22cc92a864bc5f2ca22bfecfd9d6cbbeb4e3be..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/member/repository/MemberRepository.java
+++ /dev/null
@@ -1,7 +0,0 @@
-package umc.spring.member.repository;
-
-import org.springframework.data.jpa.repository.JpaRepository;
-import umc.spring.member.domain.Member;
-
-public interface MemberRepository extends JpaRepository<Long, Member> {
-}
diff --git a/src/main/java/umc/spring/member/service/MemberService.java b/src/main/java/umc/spring/member/service/MemberService.java
deleted file mode 100644
index 795b0162e686a5262fb4157570d6d771e37dbbdb..0000000000000000000000000000000000000000
--- a/src/main/java/umc/spring/member/service/MemberService.java
+++ /dev/null
@@ -1,4 +0,0 @@
-package umc.spring.member.service;
-
-public class MemberService {
-}
diff --git a/src/main/java/umc/spring/post/controller/PostController.java b/src/main/java/umc/spring/post/controller/PostController.java
new file mode 100644
index 0000000000000000000000000000000000000000..0909aca648c0e31a35a7a2fda5ca9f02f19fed5e
--- /dev/null
+++ b/src/main/java/umc/spring/post/controller/PostController.java
@@ -0,0 +1,33 @@
+package com.umc.post.controller;
+
+import com.umc.post.data.dto.PostDto;
+import com.umc.post.data.entity.Post;
+import com.umc.post.service.service.PostService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/posts")
+public class PostController {
+
+    private final PostService postService;
+
+    public PostController(PostService postService) {
+        this.postService = postService;
+    }
+
+    @PostMapping("/upload")
+    public void upload(@RequestBody PostDto postDto){
+        postService.upload(postDto);
+    }
+    @GetMapping("")
+    public List<Post> getAllPost(){
+        return postService.getAllPost();
+
+    }
+    @GetMapping("/{id}")
+    public Post getPostById(@PathVariable Long id){
+        return postService.getPostById(id);
+    }
+}
diff --git a/src/main/java/umc/spring/post/data/dto/CommentDto.java b/src/main/java/umc/spring/post/data/dto/CommentDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..23567b60bb30a3f338bcc2b20e9a5d0d2e9658c0
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/CommentDto.java
@@ -0,0 +1,13 @@
+package umc.spring.post.data.dto;
+
+import lombok.Data;
+
+@Data
+public class CommentDto {
+
+    private Long postId;
+    private Long userId;
+    private String author;
+    private String text;
+
+}
diff --git a/src/main/java/umc/spring/post/data/dto/CommentResDto.java b/src/main/java/umc/spring/post/data/dto/CommentResDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..18e0d6a33dd34d7041c051d6f0362450ed8fe492
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/CommentResDto.java
@@ -0,0 +1,31 @@
+package umc.spring.post.data.dto;
+
+import jakarta.persistence.Column;
+import lombok.Builder;
+import lombok.Data;
+import umc.spring.post.data.entity.Comment;
+import umc.spring.post.data.entity.Post;
+
+import java.util.Date;
+
+@Data
+@Builder
+public class CommentResDto {
+    private Long id;
+    private Long postId;
+    private Long userId;
+    private String author;
+    private String text;
+    private Date timestamp;
+    public static CommentResDto toDTO(Comment comment){
+
+        return CommentResDto.builder()
+                .id(comment.getId())
+                .postId(comment.getPostId())
+                .userId(comment.getUserId())
+                .author(comment.getAuthor())
+                .timestamp(comment.getTimestamp())
+                .text(comment.getText()).build();
+    }
+
+}
diff --git a/src/main/java/umc/spring/post/data/dto/PostDto.java b/src/main/java/umc/spring/post/data/dto/PostDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..0b08be568bc8be224e3e939e50be738546d99b4a
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/PostDto.java
@@ -0,0 +1,15 @@
+package umc.spring.post.data.dto;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+@Data
+public class PostDto {
+    Long userId;
+    String title;
+    String author;
+    String body;
+    String image;
+    int likeCount;
+}
diff --git a/src/main/java/umc/spring/post/data/dto/PostResDto.java b/src/main/java/umc/spring/post/data/dto/PostResDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..48ef01fa89f5083de0cd0f76cf00652ae58d77e6
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/PostResDto.java
@@ -0,0 +1,45 @@
+package umc.spring.post.data.dto;
+
+import jakarta.persistence.*;
+import lombok.*;
+import umc.spring.post.data.entity.Comment;
+import umc.spring.post.data.entity.Post;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Builder
+public class PostResDto {
+    Long id;
+    Long userId;
+    String title;
+    String author;
+    String body;
+    String image;
+    int likeCount;
+    Date createdTime;
+    Date modifiedTime;
+    List<CommentResDto> comments;
+    public static PostResDto toDTO(Post post){
+        List<CommentResDto> resDtos = new ArrayList<>();
+        post.getComments().forEach(comment -> {
+            CommentResDto dto = CommentResDto.toDTO(comment);
+            resDtos.add(dto);
+        });
+        return PostResDto.builder()
+                .id(post.getId())
+                .userId(post.getUserId())
+                .title(post.getTitle())
+                .author(post.getAuthor())
+                .body(post.getBody())
+                .image(post.getImage())
+                .likeCount(post.getLikeCount())
+                .createdTime(post.getCreatedTime())
+                .modifiedTime(post.getModifiedTime())
+                .comments(resDtos).build();
+    }
+
+
+}
diff --git a/src/main/java/umc/spring/post/data/dto/UserInfoDto.java b/src/main/java/umc/spring/post/data/dto/UserInfoDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..bd96f34f7c68f7c9f9595e0d584eb977508201b6
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/UserInfoDto.java
@@ -0,0 +1,14 @@
+package umc.spring.post.data.dto;
+
+import lombok.*;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ToString
+@Builder
+public class UserInfoDto {
+    private String userId;
+    private String memberRole;
+
+}
\ No newline at end of file
diff --git a/src/main/java/umc/spring/post/data/dto/UserJoinDto.java b/src/main/java/umc/spring/post/data/dto/UserJoinDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..a6701bdb5684ff513155523db1deb89f5f0c4f99
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/UserJoinDto.java
@@ -0,0 +1,10 @@
+package umc.spring.post.data.dto;
+
+import lombok.Data;
+
+@Data
+public class UserJoinDto {
+    private String userId;
+    private String password;
+    private String userName;
+}
\ No newline at end of file
diff --git a/src/main/java/umc/spring/post/data/dto/UserLoginDto.java b/src/main/java/umc/spring/post/data/dto/UserLoginDto.java
new file mode 100644
index 0000000000000000000000000000000000000000..24d523d76942bef96ec20648f0dcffc5dd569848
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/dto/UserLoginDto.java
@@ -0,0 +1,9 @@
+package umc.spring.post.data.dto;
+
+import lombok.Data;
+
+@Data
+public class UserLoginDto {
+    String userId;
+    String password;
+}
diff --git a/src/main/java/umc/spring/post/data/entity/Post.java b/src/main/java/umc/spring/post/data/entity/Post.java
new file mode 100644
index 0000000000000000000000000000000000000000..a3b743cbe3979905455cceacb528e5132d5efcdc
--- /dev/null
+++ b/src/main/java/umc/spring/post/data/entity/Post.java
@@ -0,0 +1,30 @@
+package com.umc.post.data.entity;
+
+import jakarta.persistence.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+@Entity
+@Table(name = "Post")
+@Getter @Setter
+public class Post{
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(nullable = false)
+    private Long id;
+
+    @Column(nullable = false)
+    private String title;
+
+    @Column(nullable = false)
+    private String author;
+
+    @Column(nullable = false)
+    private String body;
+
+    @Column(nullable = false)
+    private Date timestamp;
+}
diff --git a/src/main/java/umc/spring/post/repository/PostRepository.java b/src/main/java/umc/spring/post/repository/PostRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..7d8540ab808d51ca2f8703e34c123ecc1a8ef231
--- /dev/null
+++ b/src/main/java/umc/spring/post/repository/PostRepository.java
@@ -0,0 +1,9 @@
+package umc.spring.post.repository.repository;
+
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import umc.spring.post.data.entity.Post;
+
+public interface PostRepository extends JpaRepository<Post,Long> {
+
+}
diff --git a/src/main/java/umc/spring/post/service/PostService.java b/src/main/java/umc/spring/post/service/PostService.java
new file mode 100644
index 0000000000000000000000000000000000000000..f24774bcc84006b4b22b9df158a76cf189126a15
--- /dev/null
+++ b/src/main/java/umc/spring/post/service/PostService.java
@@ -0,0 +1,29 @@
+package umc.spring.post.service.service;
+
+
+import umc.spring.post.data.dto.PostDto;
+import umc.spring.post.data.entity.Post;
+
+import java.util.List;
+
+public interface PostService {
+    void upload(PostDto postDto);
+
+    List<Post> getAllPost();
+
+    Post getPostById(Long id);
+
+    void likeCrew(Long id);
+
+    void dislikeCrew(Long id);
+
+    void deletePost(Long id);
+
+
+    void editPost(PostDto postDto, Long id);
+
+    List<Post> search(String title);
+
+
+    void createComment(Long id);
+}
diff --git a/src/main/java/umc/spring/post/service/PostServiceImpl.java b/src/main/java/umc/spring/post/service/PostServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..fcb0dae82baef00b3904d41e74d341e3d62f9f6a
--- /dev/null
+++ b/src/main/java/umc/spring/post/service/PostServiceImpl.java
@@ -0,0 +1,99 @@
+package umc.spring.post.service.service;
+
+
+import org.springframework.stereotype.Service;
+import umc.spring.post.data.dto.PostDto;
+import umc.spring.post.data.entity.Post;
+import umc.spring.post.repository.repository.PostRepository;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class PostServiceImpl implements PostService{
+
+    private final PostRepository postRepository;
+
+    public PostServiceImpl(PostRepository postRepository) {
+        this.postRepository = postRepository;
+    }
+
+    @Override
+    public void upload(PostDto postDto){
+        Post post = new Post();
+        setPost(postDto, post);
+        post.setCreatedTime((new Date()));
+        post.setModifiedTime(post.getCreatedTime());
+        postRepository.save(post);
+    }
+
+    @Override
+    public List<Post> getAllPost(){
+        return postRepository.findAll();
+    }
+
+
+    @Override
+    public Post getPostById(Long id){
+        return postRepository.findById(id).get();
+    }
+
+    @Override
+    public void likeCrew(Long id) {
+        Post post = getPostById(id);
+        int likeCount = post.getLikeCount();
+        post.setLikeCount(++likeCount);
+    }
+
+    @Override
+    public void dislikeCrew(Long id) {
+        Post post = getPostById(id);
+        int likeCount = post.getLikeCount();
+        if(likeCount!=0){
+            post.setLikeCount(--likeCount);
+        }
+    }
+
+    @Override
+    public void deletePost(Long id) {
+        postRepository.deleteById(id);
+    }
+    
+    @Override
+    public void editPost(PostDto postDto,Long id) {
+        Post post = getPostById(id);
+        setPost(postDto,post);
+        post.setModifiedTime(new Date());
+    }
+
+    @Override
+    public List<Post> search(String title) {
+        List<Post> postList = postRepository.findAll();
+        List<Post> findList = new ArrayList<>();
+
+        postList.iterator().forEachRemaining(post->{
+            if(post.getTitle().equals(title)){
+                findList.add(post);
+            }
+        });
+        return findList;
+    }
+
+    @Override
+    public void createComment(Long id) {
+
+        Post post = getPostById(id);
+
+        post.set
+
+    }
+
+    private static void setPost(PostDto postDto, Post post) {
+        post.setTitle(postDto.getTitle());
+        post.setBody(postDto.getBody());
+        post.setAuthor(postDto.getAuthor());
+        post.setLikeCount(postDto.getLikeCount());
+        post.setImage(postDto.getImage());
+    }
+}