본문 바로가기

Swimming/Think11

스트림은 왜 사용해야 하는가. 오늘 부트캠프에서 스트림에 대해 배웠다. 람다와 스트림은 정말 아예 문외한이던 영역이기 때문에, 일단은 기본적인 내용을 받아들이는데 가장 힘을 썼던 것 같다. 이 스킬들을 사용하고 체득하는 데는 직접 문제 풀이나, 프로그래밍에 사용해보면서 익숙해지는 방법 밖에 없다. 결국 나의 노력에 스트림을 얼마나 잘 사용하는지가 달려있다. 그런데 스트림은 왜 사용해야 할까? 사실 처음 스트림을 접했을 때는 이걸 도대체 왜 쓰나 싶었다. 지금 알아가는 것도 양이 너무나 방대한데, 새로운 메서드들을 배우고 익혀야 한다는 것이 두렵기도 했고, 스트림을 사용하기 위해선 필연적으로 람다식도 익혀야 하는데 람다식은 학교에서 배울 때 무슨 말인지 도저히 이해를 못했던 부분이라 두려움이 배가 되었다. 그럼에도 오늘 람다식과 스트림.. 2023. 3. 8.
TDD는 왜 공부해야 하는가. 개발 공부를 시작한 이래로, 여러 개발 방법론을 듣고 읽고 사용해 보고자 노력했다. 최근에는 클린 코드 작성과 더불어 TDD에 대해서 공부를 진행하고 있다. TDD에 관한 자료를 찾아보면 2014년도부터 2022년까지 꾸준히 자료가 올라옴을 확인할 수 있다. 그리고 대부분의 자료는 TDD에 관한 찬반 논쟁 자료다. 말 그대로, 사람들은 TDD가 좋다 나쁘다로 거즘 10년이 되는 시간 동안 싸우고 있다. TDD는 개발 방법론 중 하나이기 때문에, 당연히 이를 사용하고 말고는 개발자 마음이다. 나 역시 TDD를 공부해야 하는 이유에 대해 기술할 예정이지만, TDD만이 절대 지존이며, 반드시 TDD만 써야 한다라고는 말하지 않을 것이다. 다만, TDD를 공부하면서 느꼈던 'TDD를 사용한 개발 방법이 주는 이.. 2023. 3. 2.
생성자 오버로딩은 왜 사용하면 안되는가. 지난 주차에 생성자 오버로딩에 관련하여 배우면서, 생성자 오버로딩의 사용법과 왜 사용하는지에 대해 공부했다. 그리고 생성자 오버로딩은 왜 사용하면 안 되는지에 대해 생각해 보라는 숙제를 받았다. 오늘까지 고민해본 결과 생성자 오버로딩을 사용하면 안 되는 이유는 다음과 같다. 생성자 오버로딩은 명시적이지 않은 코드를 만든다. 클린 코드를 공부하면서 내 나름대로 세운 규칙 중에 하나는 '반드시 명시적인 이름을 사용하라' 이다. 우리는 코드를 마치 '글을 읽듯이 읽을 수 있게 작성해야 한다'. 전체적인 코드를 봤을 때, public한 메서드들과 생성한 객체들만 가지고도 어떤 객체들을 활용해서 어떤 기능을 하는 프로그램인지 알 수 있어야 한다. 따라서 메서드의 이름과 객체의 이름, 변수의 이름은 반드시 '그 이.. 2023. 2. 28.
'왜'는 왜 생각해야 하는가. 모든 일과 현상에는 '이유'가 있고 '결과'가 있다. 세상 그 어떤 일도 원인 없이 갑자기 일어나지는 않는다. 그리고 우리는 모든 일의 이유를 알 수 있다. 아마 우리 인간이 그 이유를 파악할 수 없는 유일한 일은 '이 세상은 도대체 어떻게 생겨난 걸까' 밖에 없을 것이다. 개발 공부를 시작한 이래로, 나는 '왜'에 대한 생각을 계속해왔다. 이 블로그에서도 '왜'에 대한 사고를 끊임없이 강조하고 있고, 일상생활에서도 '왜'와 관련한 생각을 꾸준히 진행하고 있다. 그런데 '왜'는 왜 생각해야 할까. 오늘은 나와 '왜'의 길고도 짧은 여정에 대해 간략하게 서술하고자 한다. 내가 처음으로 '왜'를 생각하게 된 건 중학생 때였다. 당시 내가 다니던 학원에서는 어떤 새로운 외부강사님을 초청해 '논술' 수업을 진행.. 2023. 2. 27.
객체에 관한 고민 - 책임과 기능은 어디까지인가. 얼마 전, 디스코드에서 사용하는 별명을 바꿔야 할 일이 있었다. 바꿀 별명을 설정하고 저장 버튼을 누르지 않고 설정 창을 닫으려 하니 시스템에서 '저장되지 않은 변경사항이 있습니다.' 라는 메세지를 보냈다. '아, 내가 저장 버튼을 안 눌렀구나.'별생각 없이 저장 버튼을 눌러 바뀐 별명으로 설정을 변경하고 디스코드를 이용하던 중에 이런 생각이 문득 들었다. 별명을 변경하는건, 내가 하는 일이 맞나? 나는 바꿀 별명을 설정했는데 왜 시스템이 그걸 저장 안 했다고 뭐라 그러는 거지? 생각이 '그러면 이 시스템 내에서 나를 어떻게 생각하길래 이렇게 간섭하는 거지?'로 이어지고 나니, 결과적으로는 '그렇다면 이 디스코드라는 프로그램 안에서 나라는 사람은 어떤 기능과 역할을 하고, 어떤 책임을 가지고 있는 거야?.. 2023. 2. 25.
반응형