At Chill Stock, we let the customers chill while we handle the chill. Built for managing perishable goods in warehouse environments, this system automatically takes care of temperature, storage conditions, and space optimizationโso your fresh goods stay fresh, and your operations stay cool.
Because fresh goods deserve fresh handling.
๐ฐ๐ท ํ๊ตญ์ด ๋ฒ์ ์ผ๋ก๊ฐ๊ธฐ | Go to English Version
Chill Stock is a Java-based warehouse management system built to handle fresh goods efficiently. The system allows users to simply input what items they want to store and in what quantityโtemperature, space, and storage conditions are automatically managed by the system's algorithm to ensure the goods' best state.
- Applying MVC (Model-View-Controller) architecture with separate layers - controller, service, repository, and model(dto,vo).
- Implementing manual Dependency Injection (DI) in Java.
- Designing and integrating a MySQL relational database.
- Using stored procedures, triggers, and constraints for data integrity and automation.
- Emphasizing team collaboration and communication.
- Implemented the Login and User Management features.
- Implemented user authentication and authorization to control access to different system features based on user roles.
- Communicated closely with teammates to ensure seamless integration across modules.
- Focused on writing clean and modular code.
- Maintained team documentation by writing meeting logs and organizing the project Notion page for clear communication and progress tracking.
- Java
- MySQL
- JDBC (for database connectivity)
- Console-based UI
- Manual DI (no frameworks)
โโโ chill-stock/
โ โโโ chill-stock/
โ โ โโโ doc/
โ โ โโโ sql/
โ โ โโโ src/
โ โ โ Main.java
โ โ โ โโโ area/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ auth/
โ โ โ โโโ diconfig/
โ โ โ โโโ inbound/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ exception/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ login/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โโโ object/
โ โ โ โโโ outbound/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ database/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ user/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ view/
โ โ โ โโโ warehouse/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
- Clone this repository.
- Set up the database:
mysql -u [username] -p wms-db < sql/SchemaUser.sql mysql -u [username] -p wms-db < sql/Table.sql mysql -u [username] -p wms-db < sql/Constraint.sql mysql -u [username] -p wms-db < sql/data.sql
- Java 17+
- MySQL running locally
- A database named
wms-db
- Adopted a Domain-Oriented Structure
- Each layer is clearly separated by functionality, allowing domain-specific logic (e.g., controller, service, DTO) to be grouped and managed in one place, improving maintainability
- As the project scales, this structure helps minimize the impact of adding or modifying features, enhancing scalability and flexibility
- Team members can efficiently divide work by domain
- We designed the database schema and ERD diagram from scratch.
- Time was spent discussing the most effective way to model entities like users, goods, and warehouse storage units.
- Relationships were carefully mapped to reflect real-world warehouse logic, such as item quantities, storage zones, and temperature tracking.
- We followed a commit message convention to ensure consistency and clarity (documented in doc/commit-convention.md).
- All code was merged through Pull Requests using a custom pull request template (pull_request_template.md) to ensure code review and communication.
- We had regular meetings to sync progress and discuss architectural decisions.
- Apply Spring Framework for automated DI and REST API support.
- Add unit tests and integration tests.
- Implement error logging and validation layers.
- Create a simple web UI or REST client.
Chill Stock์ ๊ณ ๊ฐ์ด ํธํ ์ด ์ ์๋๋ก, ์ฐ๋ฆฌ๋ ์ ์ ํจ์ ์ฑ ์์ง๋ ์ฐฝ๊ณ ๊ด๋ฆฌ ์์คํ ์ ๋๋ค. ์จ๋, ๋ณด๊ด ์กฐ๊ฑด, ๊ณต๊ฐ ์ต์ ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ฌ ์ ์ ์ํ์ด ์ต์์ ์ํ๋ก ๋ณด๊ด๋ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค.
์ ์ ํ ์์ฌ๋ฃ์, ์ ์ ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋๊น์.
Chill Stock์ ์ ์ ์ํ์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ธฐ ์ํ Java ๊ธฐ๋ฐ ์ฐฝ๊ณ ๊ด๋ฆฌ ์์คํ
์
๋๋ค.
์ฌ์ฉ์๋ ์ ์ฅํ๊ณ ์ถ์ ํ๋ชฉ๊ณผ ์๋๋ง ์
๋ ฅํ๋ฉด ๋๊ณ , ์์คํ
์ด ์ ์ ํ ์จ๋, ๊ณต๊ฐ, ๋ณด๊ด ์กฐ๊ฑด์ ์๋์ผ๋ก ๊ณ์ฐ ๋ฐ ๊ด๋ฆฌํด ์ต์ ์ ์ํ๋ก ์ ์งํด์ค๋๋ค.
์ด ํ๋ก์ ํธ๋ MVC ์ํคํ
์ฒ์ ์๋ ์์กด์ฑ ์ฃผ์
(DI)์ ์ ์ฉํ ๊น๋ํ ๋ฐฑ์๋ ๊ตฌ์กฐ๋ฅผ ์ค์ฌ์ผ๋ก ๊ฐ๋ฐ๋์์ต๋๋ค.
- MVC(Model-View-Controller) ์ํคํ ์ฒ๋ฅผ ์ปจํธ๋กค๋ฌ, ์๋น์ค, ๋ ํฌ์งํ ๋ฆฌ, ๋ชจ๋ธ(dto, vo) ๊ณ์ธต์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ ์ฉ
- Java ๊ธฐ๋ฐ์ ์๋ ์์กด์ฑ ์ฃผ์ (DI) ๊ตฌํ
- MySQL ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ ๋ฐ ์ฐ๋
- ํ๋ก์์ , ํธ๋ฆฌ๊ฑฐ, ์ ์ฝ์กฐ๊ฑด์ ํ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์๋ํ ์ฒ๋ฆฌ
- ํ ํ์ ๊ณผ ๋ช ํํ ์ปค๋ฎค๋์ผ์ด์ ์ค์ฌ์ ๊ฐ๋ฐ
- ๋ก๊ทธ์ธ ๋ฐ ์ฌ์ฉ์ ๊ด๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ
- ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ๋ฆฌ๋ฅผ ํตํด ์ฌ์ฉ์ ์ญํ ์ ๋ฐ๋ผ ๊ธฐ๋ฅ ์ ๊ทผ ์ ์ด
- ํ์๋ค๊ณผ์ ๊ธด๋ฐํ ํ์ ์ ํตํด ๊ฐ ๋ชจ๋์ด ์ํํ๊ฒ ํตํฉ๋๋๋ก ๊ธฐ์ฌ
- ๊น๋ํ๊ณ ๋ชจ๋ํ๋ ์ฝ๋ ์์ฑ์ ์ง์ค
- ํ ํ์๋ก์ ์ ๋ฆฌํ๊ณ Notion ํ์ด์ง๋ฅผ ๊ตฌ์กฐํํ์ฌ ๋ช ํํ ์ปค๋ฎค๋์ผ์ด์ ๊ณผ ํ ๋ด ์ง์ฒ ์ํฉ ๊ณต์ ๋ฅผ ๋ด๋น
- Java
- MySQL
- JDBC (๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ์ฉ)
- ์ฝ์ ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ธํฐํ์ด์ค
- ์๋ ์์กด์ฑ ์ฃผ์ (ํ๋ ์์ํฌ ์์ด ์ง์ ๊ตฌ์ฑ)
โโโ chill-stock/
โ โโโ chill-stock/
โ โ โโโ doc/
โ โ โโโ sql/
โ โ โโโ src/
โ โ โ Main.java
โ โ โ โโโ area/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ auth/
โ โ โ โโโ diconfig/
โ โ โ โโโ inbound/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ exception/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ login/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โโโ object/
โ โ โ โโโ outbound/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ database/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ user/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
โ โ โ โโโ view/
โ โ โ โโโ warehouse/
โ โ โ โ โโโ common/
โ โ โ โ โโโ controller/
โ โ โ โ โโโ dto/
โ โ โ โ โโโ repository/
โ โ โ โ โโโ service/
โ โ โ โ โโโ vo/
- ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ํด๋ก ํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ :
mysql -u [username] -p wms-db < sql/SchemaUser.sql mysql -u [username] -p wms-db < sql/Table.sql mysql -u [username] -p wms-db < sql/Constraint.sql mysql -u [username] -p wms-db < sql/data.sql
- Java 17 ์ด์
- MySQL ๋ก์ปฌ์์ ์คํ
wms-db๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ ํ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง์ ERD ๋ค์ด์ด๊ทธ๋จ์ ์ฒ์๋ถํฐ ์ง์ ์ค๊ณ
- ์ฌ์ฉ์, ๋ฌผํ, ์ฐฝ๊ณ ์ ์ฅ ๊ณต๊ฐ ๋ฑ ์ฃผ์ ์ํฐํฐ๋ฅผ ์ด๋ป๊ฒ ๋ชจ๋ธ๋งํ ์ง ํ์๋ค๊ณผ ๋ ผ์ํ๋ฉฐ ๊ตฌ์กฐํ
- ์๋, ์จ๋, ๊ณต๊ฐ ๊ตฌ์ญ ๋ฑ ์ค์ ์ฐฝ๊ณ ์ ์ด์ ๋ก์ง์ ๋ฐ์ํ์ฌ ์ํฐํฐ ๊ฐ ๊ด๊ณ๋ฅผ ์ค๊ณ
- ๋๋ฉ์ธ ๊ธฐ๋ฐ ๊ตฌ์กฐ(Domain-Oriented Structure) ์ฑํ
- ๊ฐ ๊ณ์ธต์ด ๊ธฐ๋ฅ๋ณ๋ก ๋ช ํํ๊ฒ ๊ตฌ๋ถ๋์ด ๊ฐ ๋๋ฉ์ธ์ด ๊ด๋ จ๋ ๋ก์ง(controller, service, dto ๋ฑ)์ ํ๊ณณ์ ๋ชจ์ ๊ด๋ฆฌํ ์ ์์ด ์ ์ง๋ณด์ ์ฉ์ด
- ํ๋ก์ ํธ ๋ฒ์๊ฐ ์ปค์ง ์, ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ/์์ ์ ์ํฅ ๋ฒ์๋ฅผ ์ต์ํํ ์ ์์ด ํ์ฅ์ฑ๊ณผ ์ ์ฐ์ฑ์ด ๋์
- ํ์์ด ๋๋ฉ์ธ ๋จ์๋ก ์์ ์ ๋ถ๋ด
- ํ ๋ด ์ผ๊ด์ฑ์ ์ํด ์ปค๋ฐ ๋ฉ์์ง ๊ท์น์ ์ ์ฉ (
doc/commit-convention.md) - ๋ชจ๋ ์ฝ๋ ๋ณ๊ฒฝ์ Pull Request(PR)์ ํตํด ๋ณํฉ๋์์ผ๋ฉฐ, PR ํ
ํ๋ฆฟ(
pull_request_template.md)์ ์ฌ์ฉ - ์ ๊ธฐ ํ์๋ฅผ ํตํด ์งํ ์ํฉ์ ๊ณต์ ํ๊ณ ํ๋ก์ ํธ ๋ฐฉํฅ์ฑ์ ํจ๊ป ๋ ผ์ํจ
- Spring ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ์ฌ ์๋ DI์ REST API ๊ตฌ์กฐ ๋์
- ๋จ์ ํ ์คํธ ๋ฐ ํตํฉ ํ ์คํธ ์ถ๊ฐ
- ์์ธ ๋ก๊น ๋ฐ ์ ๋ ฅ ๊ฒ์ฆ ๊ณ์ธต ๊ตฌํ
- ๊ฐ๋จํ ์น UI ๋๋ REST ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ ์์

