정글 [week3] WIL + Redis
정글 3주차 회고
정글 [week3] WIL + Redis
이번 주에 배운 것
이번 주에는 알고리즘과 자료구조의 여러 핵심 개념들을 접했다.
구체적으로는 배운 알고리즘 키워드는 다음과 같다.
- 이진 탐색,
- 분할 정복,
- 퀵 정렬, 병합 정렬,
- 스택, 링크드 리스트,
- 해시 함수
추가로 Redis에 대해서도 새롭게 알게 되었다.
아직 각 개념을 코드로 완벽하게 구현하고 설명할 수 있는 수준은 아니지만,
최소한 “이게 어떤 상황에서 왜 필요한 개념인지”를 조금씩 감 잡아가는 한 주였던 것 같다.
이번주에는 목표를 세우지 않고 시작해 AI에게 물어봐 내가 어떤걸 실천했는지 물어봤다.
| 핵심 역량 | 관련 근거 (호석 님의 회고 내용) |
|---|---|
| 1. 문제해결 | “입력, 출력, 간단한 로직을 생각해보고 타이핑하는 습관”, “문제가 안 풀릴 때 왜 이 알고리즘을 쓰는지 고민”하는 등 문제의 본질을 정의하려는 노력이 돋보입니다. |
| 2. 설계 | 구현 전 로직을 먼저 구상하는 습관을 통해 논리적인 구조를 기획하는 기초 설계 능력을 기르기 시작하셨습니다. |
| 3. 구현 | 퀵정렬, 머지정렬, 스택 등 다양한 자료구조와 알고리즘을 실제 코드로 옮기며 구현 경험을 쌓았습니다. |
| 4. 품질 | “내가 뭘 모르는지 주석으로 달아 확인”하는 방식은 코드의 불확실성을 줄이고 안정성을 높이는 디버깅의 기초가 됩니다. |
| 6. 협업 | “알고리즘 잘하시는 분들의 아이디어 도움”, “옆 사람에게 물어보는 방식”을 통해 동료와 소통하며 함께 성장하는 법을 실천하셨습니다. |
| 7. 태도 | 가장 돋보이는 역량입니다. 안 풀려도 끝까지 고민하는 집요함, 재귀의 난해함을 “믿음”으로 승화시킨 점, 본인의 부족함을 솔직하게 인정하고 개선하려는 성찰적 태도가 매우 훌륭합니다. |
| 8. 비즈니스 이해 | Redis 과제에서 “화려한 기능구현에만 신경 써서 아쉬웠다”는 성찰은 서비스의 본질과 전달하고자 하는 가치를 고민하기 시작했음을 의미합니다. |
| 9. AI 활용 | 문법 오류나 아이디어가 막힐 때 AI를 도구로 활용하여 생산성을 높이려는 시도와 이를 “내 것으로 흡수하겠다”는 주체적인 활용 계획이 뚜렷합니다. |
| 10. 학습 민첩성 | 책으로 안 되면 유튜브를 찾는 등 본인에게 맞는 학습 경로를 빠르게 찾아내어 방대한 양의 자료구조와 알고리즘 개념을 일주일 만에 습득하셨습니다. |
이번 주 목표
이번 주 목표는
이진 탐색, 분할 정복, 퀵 정렬, 병합 정렬, 스택, 큐, 우선순위 큐, 연결 리스트, 해시 테이블
이 키워드들을 코드로 완벽하게 구현하는 것보다는,
적어도 각 개념이 무엇인지 말로 설명할 수 있을 정도로 이해해보는 것이었다.
예전에는 코드를 따라 치거나 문제를 푸는 데만 집중했다면,
이번 주에는 “내가 이 개념을 정말 이해했는가?”를 조금 더 의식하면서 공부하려고 했다.
이번 주에 시도한 방식
저번 주까지에 생각했던
문제를 보면 바로 구현부터 들어가기보다, 먼저
- 입력이 무엇인지
- 출력이 무엇인지
- 어떤 흐름으로 풀 수 있을지
를 짧게라도 생각해본 뒤 코드를 작성하려고 노력했다.
작은 변화처럼 보이지만, 이 과정이 생각보다 중요하다는 걸 느꼈다.
문제를 바로 풀지 못하더라도 적어도 내가 무엇을 하려는지 알고 시작하게 된다는 점에서 차이가 있었다.
또 책만으로는 개념이 잘 안 잡히는 부분이 있어서,
이번 주에는 유튜브 강의도 많이 참고했다.
특히 내가 이해가 덜 된 개념은 텍스트보다 설명을 들으면서 보는 방식이 더 잘 맞는다는 것도 느꼈다.
공부하면서 느낀 점
이번 주에 가장 크게 느낀 건 “문제가 안 풀릴 때, 다시 처음으로 돌아가는 게 생각보다 중요하다”는 점이었다.
문제가 너무 어렵게 느껴질 때는 자꾸 구현이나 답안 형태에만 집착하게 되는데,
오히려 그럴수록
“이 문제는 도대체 뭘 하라는 문제인가?”
“왜 하필 이 알고리즘을 써야 하는가?”
를 다시 생각해보는 게 더 중요했다.
이 과정이 바로 답을 주지는 않더라도,
적어도 문제를 덜 막막하게 만들어줬다.
재귀에 대해 느낀 점
저번 주에는 재귀를 완전히 이해하지 못한 채 조금 흐릿하게 넘어갔던 것 같다.
그래서 이번 주에 분할 정복 문제를 풀면서 재귀를 다시 마주했을 때 꽤 오래 걸렸고, 답답하기도 했다.
지금도 완벽하게 이해했다고 말하기는 어렵지만,
적어도 저번 주보다 훨씬 더 감이 생긴 건 맞는 것 같다.
특히 코치님이 말씀하신
“재귀 안에서는 함수가 그 식대로 작동할 거라고 믿어야 한다”
는 말이 이번에는 조금 와닿았다.
전에는 이 말이 그냥 추상적으로 들렸는데,
이제는 “내가 당장 모든 과정을 눈으로 다 따라가지 못하더라도,
작은 문제로 쪼개지고 그 결과가 돌아온다는 걸 믿고 식을 세워야 하는구나”라는 느낌으로 이해되기 시작했다.
자신감에 대한 변화
한동안 알고리즘에 대해 자신감이 많이 떨어져 있었던 것 같다.
문제를 보면 바로 풀지 못하는 경우가 많고,
다른 사람들보다 느리다는 생각도 들었다.
그런데 알고리즘을 “역사책 읽듯 흐름을 이해하면서 공부해도 된다”는 이야기를 듣고 나서는
조금 마음이 편해졌다.
처음부터 완벽하게 구현하고 빠르게 푸는 사람이 되는 것만이 아니라,
왜 이런 알고리즘이 나왔고 어떤 맥락에서 쓰이는지 차근차근 이해해가는 것도 공부라는 생각이 들었다.
그 덕분에 이전보다 덜 조급해졌고,
조금은 다시 해볼 수 있겠다는 자신감도 생겼다.
주변에서 받은 도움
이번 주에는 알고리즘을 잘하시는 분들이 많아서,
그분들이 문제를 어떤 방식으로 바라보고 어떻게 접근하는지 들을 수 있었다.
정답 자체보다도
“아, 저 사람은 문제를 저렇게 쪼개서 보는구나”,
“막히면 저런 기준으로 생각을 정리하는구나”
같은 부분이 특히 도움이 됐다.
혼자 공부할 때는 내가 막히는 방식만 반복하게 되는데,
다른 사람의 접근 아이디어를 들으면서
문제를 보는 관점이 조금 넓어진 느낌이 있었다.
내가 찾은 공부 방식
이번 주에 가장 의미 있었던 건,
문제가 안 풀릴 때 무작정 오래 붙잡고 있는 것보다
- *“내가 지금 정확히 뭘 모르는지 적어보는 것”**이 훨씬 도움이 된다는 걸 느낀 점이다.
그동안은 막히면 그냥 답답한 상태로 오래 끌었던 것 같은데,
주석으로라도
- 이건 개념이 헷갈리는 건지
- 문법이 헷갈리는 건지
- 아예 아이디어가 안 떠오르는 건지
를 적어보면, 막막함이 조금 줄어들었다.
그리고 이렇게 나누고 나면 대응 방법도 달라진다.
- 개념이 부족하면 유튜브, 책, 구글링으로 다시 공부하고
- 문법이 헷갈리면 구글링이나 AI로 빠르게 확인하고
- 아이디어가 아예 안 떠오르면 옆 사람이나 AI에게 질문하는 식으로
좀 더 효율적으로 접근할 수 있을 것 같다.
이 방식은 앞으로도 계속 써볼 만한 공부 방법이라고 느꼈다.
Redis를 배우며 든 생각
이번 주에는 Redis에 대해서도 새롭게 알게 되었다.
그 자체로도 흥미로웠지만, Redis를 활용해 어떤 서비스를 만들 수 있을지 생각하는 과정에서 아쉬움도 있었다.
나는 Redis를 보면서 기능이 화려한 웹서비스 쪽으로 상상을 많이 했고,
그러다 보니 정작 핵심 개념을 이해하는 것보다 기능 구현 아이디어에 더 신경을 쓴 것 같았다.
물론 기능을 상상하는 것도 재미있지만,
지금 단계에서는 “멋있어 보이는 결과물”보다
내가 이 기술을 얼마나 이해하고 설명할 수 있는가가 더 중요하다는 걸 느꼈다.
그래서 다음부터는 수요 코딩 회의 주제를 정할 때도
겉으로 복잡하고 화려한 주제보다는,
내가 실제로 흡수해서 자신 있게 발표할 수 있는 주제인지를 더 먼저 생각해야겠다고 느꼈다.
아쉬웠던 점
이번 주를 돌아보면 몇 가지 아쉬운 점도 있었다.
- 재귀를 아직 완전히 내 것으로 만들지는 못했다.
- 문제를 오래 붙잡고만 있으면서 비효율적으로 시간을 쓰는 경우가 있었다.
- Redis를 생각할 때 핵심 개념보다 기능 구현 쪽으로 생각이 쏠렸다.
- 수요 코딩 회의 주제를 더 “내 것”으로 만드는 고민이 부족했다.
하지만 이런 아쉬움도 결국은
내가 어떤 방식으로 공부하면 더 잘할 수 있을지 알게 해준 힌트라고 생각한다.
다음 주 계획
다음 주에는
트리, 이진 검색 트리, 그래프(vertex, edge, node, arc), BFS, DFS, 위상 정렬
이 키워드들을 적어도 말로 설명할 수 있는 수준까지 이해하고 싶다.
그리고 그중 하나쯤은
- *자신 있게 코드로 구현하고, 왜 그렇게 동작하는지도 설명할 수 있는 수준까지 가보고 싶다.
또 수요 코딩 회의 주제도
기능이 많고 화려한 방향보다는,
AI의 도움을 받더라도 내가 충분히 흡수하고 발표할 수 있는 수준으로 정해서
이번보다 더 자신 있게 준비해보고 싶다.