Search
Duplicate

2020년 11월 3주차 회고록

11월의 3번 째 회고록이자, 블로그 스터디 2기의 첫 번째 회고록 포스팅이다.
이상하게 이번 주는 굉장히 오랜만에 포스팅을 하는 기분이 든다. 왜 그러지... 아마도 매일같이 강의를 보거나 책을 포스팅을 한편씩은 했는데, 이번 주는 미션 진행에 집중하며 비교적 포스팅의 빈도가 줄어서 그런게 아닐까 생각이 든다.

이번주의 공부&일하면서 듣던 노래

12월이 다가오며 급 크리스마스 분위기가 생각나 듣기시작 했는데 생각보다 리듬이 단순하고 경쾌해 배경음으로 틀어놓고 내 일 보는데 방해가 되지 않던 노래. 이번 크리스마스에는 광주로 내려갈 예정인데, 뭘 하고 놀지 고민이다.

1. TDD, Clean Code with Java

nextStep 진행사항
이번주의 핵심 진행사항은 역시나 nextStep의 클린코드 과정
어느덧 사다리게임 2단계를 진행하고 있다. 대략 처음 1단계 머지를 받고 잠깐 머리를 식힐겸 다른분들 코드를 보려고 하니 알게 된 것은 현재 2단계 이상 진행 하신 분은 한 분밖에 없고 2등정도는 된다는 사실에 뿌듯한 감정이 들긴 했으나 잘 생각해보면 이건 내가 다른 사람보다 잘하기에 그런게 아니라 단지 내가 회사에서도 집에서도 새벽에도 시간을 갈아 넣으면서 하니까 그런거라고 생각하니 다시 차분해진다.
이번 3번 째 미션 사다리게임은 리뷰어분이 그래도 블랙커피 스터디나 블로그 스터디에서도 뵜던 분이셨는데, 매번 리뷰를 정말 빠르고 디테일하게 해주는걸 보고 내심 3이나 4미션에서는 내 리뷰어가 되길 기대했는데,
다행히 이번 미션에 내 리뷰어로 배정이 되셨다. 2 미션 리뷰어분도 디테일하게 해주셔서 내 실력향상에 많은 도움이 되었지만, 회사일로 바쁘셔서 항상 24시간을 꽉 채우거나 새벽에 리뷰를 해주시고 DM은 거의 못받으시는 편이라 힘들었는데, 이번에는 리뷰도 빨리 해주시고 DM도 (내가 너무 자주 보내는 것 같아 자제중...) 잘 받아주셔서 너무 좋다.
이번 주차 미션을 진행하며 정말 발전하는게 느껴진다. 인터페이스의 사용에도 점점 익숙해지는게 느껴진다.
이번주에 많이 느끼고 고치려 노력한 부분을 얘기하면,
1.
계산 및 평가에 대한 책임유무를 너무 과중하게 생각해 사소한 출력 결과마저 도메인에서 해결하려 하지말자.
: 기존에 View단에 노출될 수익율에 대해서 소숫점 2자리까지의 계산을 도메인 로직에서 해결했다. 그런데 만일, 소숫점 두자리가 세자리가 되거나 백분율로 바뀌거나 한다면? 출력부분의 다양한 요구사항 별로 도메인에서 View에 맞추는 건 효율적이지 않다. 매번 도메인 로직에 추가할 것도 아니고...
그렇기에 이런 소소한 계산로직은 출력부분(ResultView)에 있는게 좋다. 다만, FE쪽의 리코일, 리덕스 패턴들을 보면 출력에 필요한 값은 따로 가공해주는 메소드들이 있어서 그것을 호출해 사용한다. 그 말인즉슨, 가공에 걸리는 로직이 어느정도의 복잡성을 요구하거나 한다면 따로 하나의 메소드로 분리해 사용하는 것도 충분히 고려할만한 일이다.
2.
자바에서 기본으로 제공하는 유틸 기능을 잘 활용하자.
: 자바에는 정말 충분히 많은 유틸 메소드들이 있다. 예를 들면, new ArratyList()를 굳이 사용하지 않고 Collections.emptyList() 을 사용하면 제네릭 타입에 맞는 emptyList를 반환해준다. 그 뿐아니라 여러 리스트들을 하나로 병합할때는 Stream API의 flatMap을 쓰면 손쉽게 하나로 합칠 수 있다.
시간이 되는대로 이런 유틸 메소드 들 을 파악해 둔다면 좀 더 높은 생산성을 확보하고 코드의 가독성 또한 높아질 수 있지 않을까?
3.
DTO를 활용하자
: 이번 과정을 진행하며 가장 어려웠던 규칙을 말해보자면 인수의 수를 3개 이상이 되지 않도록 하라는 것과 getter/setter를 없애라는 것 이였다. 아니 도대체 내용물을 꺼내서 가공을 해야하는데 어떻게 하라는거지? 그래서 억지로 구현을 하려다 보니 얼토당토 않은 전략을 생성해 외부에서 주입하거나 해괴한 방식으로 구현을 하게 되다보니 레이어 간 영역침범이 일어나며 깨끗한 코드와는 거리가 멀어졌다.
그래서 고민끝에 리뷰어분 들에게 물어본 결과 DTO를 활용하라는 답변... 바로 냉큼 DTO를 만들어서 사용하니 깔끔하게 해결!
거기에 Collections.unmodifiablelist을 활용해 불변성을 확보하니 안정성도 챙길 수 있어서 좋았다.
하지만, 아직 많이 써 보질 않아 그런건가 DTO가 중복되는 것 같은 게 많아 고민이다.
4.
차분히 꼼꼼하게 코딩하자.
: 개발자는 꼼꼼해야한다. 근데 나는 꼼꼼하질 못하다...
아는데도 무심결에 놓치는 게 너무 많아 이걸 지적 받을 때마다 뜨끔한다. 유틸클래스의 생성자 방어로직이라던가, 클린코드에서 말하는 코드의 개념별 개행이라던가... 어떻게 보면 가장 힘든게 이 부분이다.
심지어 머리가 복잡 할 때는 코드를 한줄한줄씩 다시 보더라도 놓친다.
이 부분이야말로 내가 계속해서 노력 해야하고 의식적으로 무의식적인 영역을 훈련 해야 하는 부분이라 생각한다.

코드리뷰 피드백 정리

2. 라이브 자바 스터디

저번 주 일요일저녁 개발자 단톡방에서 추천을 받아서 허겁지겁 시작하게 된 자바 라이브 스터디...
자바 개발자로 유명하고 강의도 많이하시는 백기선님이 시청자분에게 아이디어를 제공받아 바로 시작한 스터디라고 하는데, 총 18주차로 80%이상 과제를 제출하면 특별(?) 티셔츠도 제공해준다고 한다.
나는 1주차의 마지막날인 일요일 저녁 알게되어 허겁지겁 새벽까지 완료해서 제출하며 시작을 했다.
주제는 말 그대로 자바다. 자바를 아예 기초부터 리마인드해서 과제를 주차별로 작성해 제출하는 것인데, 이게 생각보다 만만치 않다. 이제 실무도 2년차이고 졸업한지도 꽤 되어 자바공부는 어느정도 했다고 생각했는데도, 이걸 직접 포스팅하며 정리하다보니 놓치거나 잊어먹거나 아예 모르던 것들이 튀어나왔고, 막연이 쓰던게 왜 쓰이는자와 어떻게 되는 것인지에 대해 되짚어 볼 수 있다.
이번 스터디는 초보는 초보대로, 중급자는 중급자대로 많은 도움이 될 스터디라고 생각한다.
JVM에 대해 간략하게는 이미 알고 있던 것이지만, 그 내부에서 어떻게 돌아가고 JIT이 무엇이고 어떤 방식으로 돌아가는지에 대해서는 몰랐는데 정리하며 알게되었고, 타입추론알고리즘을 분석하진 않았지만 적어도 타입 추론이 어떻게 이뤄지는지는 알게 되었다.
지금이라도 늦지 않았다. 관심있는 사람들은 어서 참가 해 보도록 하자.

라이브 자바 스터디 정리 항목

3. Diablo3- Season22

11월 20일 17:00경 디아블로3의 22시즌이 열렸다.
나는 늘 디아 시즌이 열리면 1~3일정도를 정말 영혼을 불태워서 진행한다.
이번에도 스트레스 해소겸 너무 게임을 안한지도 오래되어 두근거리는 마음으로 디아블로 유튜버의 실시간 스트리머의 방송도 틀어놓고 같이 진행을 했다.
네크로맨서와 비슷한 부류의 직업인 강령술사로 시작을 했으며 처음에는 채널에서 3명을 모아 총 4명이서 진행을 했다. 생각보다 처음에는 템이 잘 나와서 순조로웠지만 파티원들의 이동속도가 너무 빨라 따라가기도 벅차거나 생존력이 받쳐주질 않아서 계속 죽어가면서 랩업을 했고, 만렙이 되었다.
다른게임들도 그렇지만 디아블로도 만렙이되야 이제 진짜 시작이다. 시즌이 열리면 정벌 미션 이라는게 있는데 이를 해결하면 직업별 세트 아이템을 2 부위씩 제공해준다. 하지만, 나는 너무나도 약했고, 다른 파티원들의 도움을 받아서 진행을 했다.
그렇게 2부위 2부위... 총 6부위를 맞추는데 성공을 했고, 이제 유튜버들처럼 강력한 내모습이 되어 몬스터를 학살해야지! 라는 달디단 꿈에 빠져들었지만, 마치 비트코인 유저의 떡상 기원과 같이 6부위를 맞춘 내 강령술사의 첫 사냥은 처참한 떡락이였다.
뭔가 몬스터는 죽지도 않고, 나는 죽는 마치 내가 몬스터같은 상황이 반복되었다. 그런데 특정 상황에서는 수천억의 데미지가 나오며 몬스터들이 죽어나가는데 도대체 이게 어떤 원인인 것인가...
플레이를 하다보니 특정 전설 목걸이를 먹어서 내 스킬중 내 분신이 무한으로 살아있게 해야지만 강력해진다는 얘기를 듣고, 정말 열심히 키워서 밤늦게 목걸이를 먹고나니 이제서야 떡상한 내 캐릭터!(내 건강은 그냥 상하고...) 그때부터 같이 랩업하던 수도사 한분과 던전 기록 갱신을 하며 랭킹을 찍어보자고 생각했고,
운이 좋게도 아시아 2인 던전 1등과 강령술사 1인 2등을 할 수가 있었다.
사실 1등도 해보고는 싶었지만, 갈수록 부족한 템으로 힘들어지는 생존과 갑자기 등장한 중국유저의 10단 이상높은 클리어 단수를 보고는 포기했다.(핵으로 의심된다 젠장)
2인 1등!
1인 2등!