[TIL] 16일차 _ 키오스크 프로젝트 #4

Seoyeon Lee·2025년 10월 27일

Today I Learned ...

오늘은 코드카타 SQL과 알고리즘 13~15번 문제를 풀고, 키오스크 프로젝트의 Lv.6을 진행했다.


🗒️ 코드카타 #9

오늘은 주말에 밀린 코드카타까지 진행하느라 SQL과 알고리즘 각각 3개의 문제를 풀었다.

오늘 진행한 SQL 문제는 모두 사전캠프에서 다뤘던 내용들이라 큰 어려움 없이 풀 수 있었다.
그 중 하나의 문제에서는 null을 처리하는 내용을 다뤘는데, coalesce(A, B)를 사용하는 것이다.
A 컬럼의 값이 null이라면, B로 대체한다는 의미인데, B에는 컬럼이 올 수도 있고, ""(큰따옴표)를 사용하여 특정한 문자열을 지정해줄 수도 있다.

오늘 진행한 알고리즘 문제들도 큰 어려움 없이 해결할 수 있었다.
나는 모든 문제를 for문, while문을 사용해 접근했지만, 다른 사람들의 풀이를 보니 Stream을 활용하면 훨씬 더 간결하게 작성할 수 있게 된다.
앞으로는 여러 방법들을 사용해서 문제를 해결해봐야겠다.

각각의 문제와 풀이는 깃허브를 통해 업로드해두었다.
GitHub 보러가기


🖥️ 키오스크 프로젝트 #4

오늘은 키오스크 프로젝트의 도전과제, Lv.6을 진행했다.

Lv.6의 요구사항은 장바구니를 사용해 주문하고자 하는 메뉴를 장바구니에 담고, 장바구니를 출력하고, 금액을 계산하는 것이다.

Lv.6에서 원하는 흐름은 위와 같이 정리할 수 있었다.
전에는 플로우차트를 따로 만들지 않고 진행했었는데, 확실히 플로우차트를 그려놓고 진행을 하니 훨씬 빠르게 처리할 수 있었다.

플로우차트와 클래스 다이어그램을 모두 코드를 짜기 전에 제작하려고 했는데,
도저히 클래스 다이어그램은 문제를 읽으면서 만들 수는 없었다.
쓸데없는 곳에 시간 낭비를 하지 않기 위해서는 클래스 다이어그램을 먼저 작성하는게 좋을 것 같은데,
언젠가 문제를 읽으며 바로 생각할 수 있는 수준까지 되길 바란다.

장바구니 클래스를 생성하고, 장바구니에 메뉴 아이템을 담고, 주문을 처리하는 것까지는 했지만,
비어있는 메뉴의 NullPointerException을 처리하는 데에는 실패했다.
Lv.5에서까지만 해도 따로 예외 처리를 하지 않아도 됐는데, 무엇 때문인지 Lv.6에서는 예외 처리를 하지 않으니 프로세스가 바로 종료되었다.
이와 관련해서는 내일 더 해보아야겠다.

내가 작성한 코드는 깃허브에 업로드해두었다.
GitHub 보러가기


🙃 오늘의 느낀점

확실히 도전과제라 그런지 접근부터가 쉽지는 않았다.
하나의 이슈를 해결하면 곧바로 다른 이슈가 생기고, 그걸 해결하면 또 다른 이슈가 생겨서 작업 내용을 기록할 틈도 없이 수정하고, 수정하고, 또 수정해야만 했다.
막상 작성한 코드들을 다루다보면 어려움 없이 해결할 수 있는데, 그걸 머릿속에서 그려보려고 하면 막막해진다.
많이 연습하다보면 언젠가 그림도 잘 그려질 것이라 믿는다..

그래도 이런 과정들이 힘들기만 하지 않고, 오히려 재미있다.
끝까지 재미를 잃지 말고 열심히 해봐야겠다.

profile
백엔드 개발자 지망생

0개의 댓글