Loading the catalog…
Loading the catalog…
1. 다이어그램 작성 이번 커머스 과제를 구현하면서 클래스 간 관계를 파악하기 위해 draw.io로 구조를 정리했다. 현재 구현한 구조는 대략 다음과 같다. [클래스 다이어그램] - draw.io [흐름도] - draw.io Main ↓ CommerceSystem ↓ Category ↓ Product CommerceSystem ↓ Customer CommerceSystem은 전체적인 흐름과 사용자 입력을 담당하고, Category는 상품 목록을 관리하며, Product는 개별 상품 정보를 관리하도록 역할을 나누었다. 또한 실무에서 다이어그램을 어떻게 활용하는지, 다양한 다이어그램 중 상황에 따라 어떤 것을 선택하는지 궁금해졌다. 특히 이전 국비 과정에서도 아키텍처와 DFD의 차이를 명확하게 구분하기 어려웠기 때문에 이에 대해 질문했다. 2. 트러블슈팅 — 상품 목록이 출력되지 않는 문제 처음 실행했을 때 카테고리를 선택해도 상품이 정상적으로 출력되지 않고 다음과 같이 나타났다. [ [] ] 확인해보니 Category의 addProduct()가 실제 products 리스트에 상품을 추가하지 않고 있었고, getName()도 카테고리의 이름이 아닌 다른 값을 반환하도록 잘못 구현되어 있었다. 또한 getProducts()에서 상품 리스트를 정상적으로 반환하지 않아 이후에는 다음과 같은 NullPointerException도 발생했다. Cannot invoke "java.util.List.size()" because "products" is null 원인을 확인한 후 Category의 상품 추가 및 조회 로직을 수정했다. public void addProduct(Product product) { products.add(product); } public String getName() { return name; } public List getProducts() { return products; } 수정 후 카테고리를 선택하면 해당 카테고리에 등록된 상품들이 정상적으로 출력되는 것을 확인했다. 3. 배운 점 이번 과제를 통해 단순히 클래스를 만드는 것뿐만 아니라 각 클래스가 어떤 역할과 책임을 가져야 하는지 분리하는 것이 중요하다는 것을 다시 확인했다. 특히 CommerceSystem에서 모든 상품 데이터를 직접 관리하는 대신 Category가 자신의 상품 목록을 관리하도록 분리하면서 객체 간 역할을 구분할 수 있었다. 그리고 오류가 발생했을 때 무작정 코드를 수정하기보다 실제 데이터가 어디에서 생성되고, 어디에 저장되며, 어디에서 조회되는지를 따라가면서 원인을 찾는 것이 중요하다는 것을 배웠다.
What RADAR observed and classified to build this opportunity. It is what the source published, not a verification that the offer is still active.
[내일배움캠프] 09월 28일 TIL. 1. 다이어그램 작성 이번 커머스 과제를 구현하면서 클래스 간 관계를 파악하기 위해 draw.io로 구조를 정리했다. 현재 구현한 구조는 대략 다음과 같다. [클래스 다이어그램] - draw.io [흐름도] - draw.io Main ↓ CommerceSystem ↓ Category ↓ Product CommerceSystem ↓ Customer CommerceSystem은 전체적인 흐름과 사용자 입력을 담당하고, Category는 상품 목록을 관리하며, Product는 개별 상품 정보를 관리하도록 역할을 나누었다. 또한 실무에서 다이어그램을 어떻게 활용하는지, 다양한 다이어그램 중 상황에 따라 어떤 것을 선택하는지 궁금해졌다. 특히 이전 국비 과정에서도 아키텍처와…