Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feature] 기업(Company) CRUD 구현 #29

Open
Codemaniac7 opened this issue Mar 25, 2025 · 0 comments
Open

[feature] 기업(Company) CRUD 구현 #29

Codemaniac7 opened this issue Mar 25, 2025 · 0 comments

Comments

@Codemaniac7
Copy link
Collaborator

Codemaniac7 commented Mar 25, 2025

어떻게 써야 할지 고민될 땐 Wiki의 ISSUE EXAMPLE : 이슈 어떻게 쓰면 좋을까?를 참고해주세요.


이슈 설명

미리 이슈에서 풀 리퀘스트에서 할 일을 구상해봅시다.

이슈에 대한 상세설명을 해주세요. 해당 이슈를 다룰 때 주목해야 할 문제가 무엇인지, 왜 해결이 필요한지 등을 자세히 작성합니다.

  • 주요 사항

기업 등록 (Create)

기능: 새로운 기업을 등록합니다.

설명: 관리자는 새로운 기업 정보를 입력하여 등록할 수 있어야 하며, 필수 정보는 기업 이름, 연락처, 주소, 이메일 등입니다.

기업 조회 (Read)

기능: 기업 정보를 조회합니다.

설명: 사용자는 기업의 세부 정보를 조회할 수 있습니다. 이 정보는 기업 이름, 주소, 연락처, 이메일 등이 포함됩니다.

기업 수정 (Update)

기능: 기존 기업 정보를 수정합니다.

설명: 관리자는 등록된 기업 정보를 수정할 수 있어야 합니다. 예를 들어, 연락처 정보나 이메일 주소 변경 등이 포함될 수 있습니다.

기업 삭제 (Delete)

기능: 기업을 삭제합니다 (Soft delete).

설명: 기업을 삭제할 때 실제로 데이터를 제거하는 것이 아니라, 삭제 상태로 변경하여 필요 시 복구할 수 있게 합니다. 이 방식은 데이터의 보존을 목적으로 하며, 시스템에서 기업을 더 이상 조회할 수 없게 처리됩니다.

기업 목록 조회 (Read All)

기능: 모든 기업 목록을 조회합니다.

설명: 관리자는 등록된 모든 기업의 목록을 조회할 수 있어야 하며, 이를 통해 기업을 관리하고, 추가 정보가 필요할 경우 해당 기업에 대해 더 자세히 조사할 수 있습니다.

  • 해결 계획


Spring Security 설정

목표: 관리자의 인증 및 권한을 처리합니다.

조치: Spring Security를 설정하여 관리자만 기업 등록, 수정, 삭제 및 조회 권한을 갖도록 합니다. 또한, 사용자 권한에 따라 기업 정보를 보호합니다.

기업 관리 API 개발

목표: 기업 정보를 관리할 수 있는 CRUD API를 개발합니다.

조치:

POST /companies: 새로운 기업을 등록하는 API.

GET /companies/{id}: 기업 정보를 조회하는 API.

PUT /companies/{id}: 기업 정보를 수정하는 API.

DELETE /companies/{id}: 기업을 삭제하는 API(Soft delete).

GET /companies: 모든 기업 목록을 조회하는 API.

각 API는 User 권한을 검사하여 관리자가 아닌 사용자는 접근할 수 없도록 설정합니다.

UI 개발

목표: 관리자 페이지에서 기업 CRUD를 할 수 있는 UI를 개발합니다.

조치: React 또는 Vue.js와 같은 프론트엔드 프레임워크를 사용하여 기업 등록, 조회, 수정, 삭제 기능을 제공하는 페이지를 만듭니다.

기업 등록/수정 폼: 관리자가 기업을 등록하거나 수정할 수 있도록 폼을 제공합니다.

기업 목록 페이지: 등록된 모든 기업을 확인할 수 있는 페이지를 제공합니다.

삭제 기능: 기업을 삭제할 수 있는 버튼을 추가하되, 삭제 시 실제 데이터는 남기고 삭제 처리(Soft delete)되도록 합니다.

데이터베이스 설계

목표: 기업 정보를 저장할 데이터베이스 구조를 설계합니다.

조치:

companies 테이블을 생성하고, name, contact, address, email, status 등의 필드를 포함합니다.

status 필드는 Soft delete 기능을 위해 사용되며, 기업이 삭제된 경우 status 값을 변경하여 삭제된 상태로 표시합니다.

알림 및 커뮤니케이션 로그

목표: 기업 관련 작업에 대한 알림과 커뮤니케이션 로그 기능을 구현합니다.

조치:

기업 정보 수정이나 삭제가 발생할 때 관리자는 알림을 받을 수 있도록 구현합니다.

커뮤니케이션 로그 시스템을 통해 각 기업의 상태 변경 이력을 추적하고 관리할 수 있게 합니다.

권한 관리

목표: 관리자가 아닌 사용자는 기업 CRUD 기능을 사용할 수 없도록 제한합니다.

조치: Spring Security로 역할 기반 접근 제어를 구현하여, 기업 등록/수정/삭제 API에 대해 관리자만 접근할 수 있도록 설정합니다.

주요 풀 리퀘스트

풀 리퀘스트에서 있었던 유의미한 트러블슈팅/코드리뷰를 기록해주세요.

모든 풀 리퀘스트를 기록할 필요는 없습니다.

  • #풀리퀘스트번호 : 이슈상황요약 -> 해결방법요약
    • 트러블슈팅:
    • 코드 리뷰:


메모

필요에 따라 메모를 추가해주세요.

링크넣는방법 : [렌더링되는글](링크)

  • 미해결 과제
  • 추후논의
  • 참고 자료
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant