전체 글
-
20220914 TIL 코딩테스트를 TDD로 풀어보았다.TIL 2022. 9. 14. 11:44
오늘은 어제 홀맨님께서 TDD를 연습하기에 가장 좋은 게 코딩테스트라고 하셔서 반신 반의하며 코딩테스트를 TDD로 푸는 것을 시도해보았다! 오늘의 문제가 쉬웠을 수 있지만, 다른 날들보다 훨씬 빠르게 코딩테스트 문제를 해결했다. 어려운 경우의 수 문제가 안 풀릴 때 하나하나 손으로 몇 십 개를 그냥 손으로 쓰다보면 문득 해결 방법이 떠오르는데, 코딩에서는 TDD가 그 역할을 하는 것 같다. 테스트 케이스들을 차근차근 순서대로 생각하다보면 해결 방법이 떠오르게 되는 것 같다. 그리고 오늘도 약수 개수는 제곱근 기준 대칭이라는 개념을 사용했다. 자주 나오는 개념인 것 같으니 까먹지 말자. 그리고 앞으로도 코딩테스트를 TDD로 풀자!
-
20220913 TIL 성수의 아침은 일찍 시작된다TIL 2022. 9. 13. 06:55
각 지역마다 아침 거리의 풍경은 제각기 다른 것 같다. 한산하고 사람이 없기도 하고 분주하고 바쁘기도 하다. 지금 공부를 하고 있는 성수는 앞으로도 점점 핫해질 예정이라 회사 건물 등등 공사 현장이 곳곳에 있다. 새벽에 나와도 밖에는 이미 열심히 분주히 살고 있는 사람들로 가득하다. 많은 사람들, 그리고 이미 오픈한 식당들. 성수에는 작은 공장들도 많다. 성수는 공장을 핫한 가게들로 리모델링하면서 뜨기 시작했었다고 한다. 새벽부터 공장들엔 불이 켜져있다. 성수의 아침이 주는 이 느낌이 참 좋다. 일찍일찍 일어나자.
-
20220912 TIL 환경 설정을 하자!TIL 2022. 9. 12. 18:09
VScode를 사용할 때는 lint로 줄들을 한 번에 정리해줄 수 있지만 인텔리제이로는 그런 기능이 없어서 고통받고 있었다. 특히 마지막에 한 줄 띄워주는 것을 자동으로 하는 방법을 몰라서 매번 셀프 리뷰하면서 확인하고 있었는데, 석태님께서 해결방법을 찾아주셨다!!! 인텔리제이에서 cmd , 로 preferences를 열고 위와 같이 원하는 형식의 파일에 마지막 줄을 추가해주면 된다. 템플릿을 만들어둘 수 있다니!! 너무 좋다. 도구를 사용하자. 인간은 도구를 쓸 줄 알아야 한다. 환경 설정을 가끔 들여다 보고 조작해보자!
-
객체 지향 프로그래밍 너의 정체를 드러내라 [객체지향의 사실과 오해]책을 읽자 2022. 9. 12. 12:06
이 책을 읽기 전까지는 내가 객체지향에 대해 잘못 이해하고 있는지 몰랐다. 그리고 객체지향이라며 프로그램을 짰지만, 이 책을 읽고 보니 내가 짠 코드는 객체지향 프로그램이 아니었다. 정말 제대로 객체지향적으로 프로그램을 짜니 훨씬 가독성이 높고, 깔끔하다. 그렇다면 이 책에서 말하는 제대로 된 객체지향은 어떤 것인지 알아보자. 객체지향에서 제일 중요한 것은 메시지이다. 객체지향을 강력하게 만드는 비밀은 책임과 메시지에 숨겨져 있다. 객체끼리 어떤 메시지로 협력을 하게 할 것인가를 중심으로 프로그램을 짜면 아주 바람직한 객체지향 프로그램이 탄생한다. 훌륭하고 유지보수가 쉬운 시스템을 만들기 위한 핵심은 모듈 내부의 속성과 행동이 어떤가보다는 모듈이 어떻게 커뮤니케이션하는가에 달려 있다. 훌륭한 객체지향의 ..
-
20220911 TIL 액션플랜을 잘 지키자TIL 2022. 9. 11. 18:35
1주차 주말부터 토요일에 강의노트까지 완성하는 것을 액션플랜으로 세웠었는데, 이번 주에 처음으로 토요일에 강의노트까지 작성했다. 토요일에 강의노트까지 끝내두니 확실히 일요일에 다급하지 않았다. 앞으로도 쭉 토요일에 강의노트를 완성시키자. 액션 플랜은 지키기 위해 세우는 것이다. 그리고 잘 지키면 아주 좋다. 오늘 강의노트 완성하기 말고도 여러가지 액션플랜들을 지켰는데, 낮잠도 자고, 먹부림도 부렸다. 서울숲 당도에 가서 젤라또를 먹고 퍼니주에 가서 카츠카레를 먹었다. 당도는 말해 뭐해~ 퍼니주 돈까스도 짱 맛있었당. 액션 플랜을 잘 지키면 대대손손 평안하다. 액션 플랜을 잘 지키자. 다음 주도 아자아자 화이팅!
-
4주차 개념노트메가테라 2022. 9. 11. 13:45
build 소프트웨어에 필요한 수 많은 파일들(소스 코드 + 리소스)을 변형 또는 압축하는 과정을 의미한다. 소스 코드를 실행할 수 있는 상태로 만들어주는 것도 빌드이고, 코드들을 압축해서 전체 크기를 줄이거나 난독화하는 과정도 빌드에 해당한다. 컴파일 언어의 경우 컴파일이 당연히 build과정에 포함된다. 배포(개발한 프로그램을 사용자에게 전달)하기 위해서는 빌드 과정이 필요하다. Gradle등의 빌드 도구를 이용해서 빌드할 수 있다. 배포 빌드한 결과물을 사용자에게 전달하는 것을 의미한다. 사용자들이 다운로드할 수 있는 곳(구글 플레이 등)에 업로드하거나 웹사이트의 서버에 올려서 웹사이트에 개발한 것을 반영하는 것을 의미한다. jar 파일 소스 코드와 리소스들을 한 개의 파일로 모은 파일이다. 프로그..
-
20220910 TIL 왜이리 잠이오는 것이냐TIL 2022. 9. 10. 18:02
왜이리 잠이오는 것일까 잠을 충분히 잤건만 왜이리 잠이오는 것인가 정규 과정이 쉬는 동안에는 카페인 없이 살아보고 싶어서 충분히 잔다고 잤는데도 잠이 쏟아졌다. 그래서 자의반 타의반 조금 낮잠을 잤는데 매우 효과가 좋았다. 앞으로도 피곤하면 점심시간에는 잠이 잘 오는 노래를 틀어두고 좀 자면 좋을 것 같다. 그리고 주말에도 하나씩 푸는 게 감을 유지하는 데 좋을 것 같아서 오랜만에 프로그래머스 코딩문제를 풀어봤다. 오늘은 레벨1 중 가장 정답률이 낮은 것을 풀어봤다. stream을 쓰면 코드가 더 깔끔해질 것 같지만 오늘은 일단 푼 것에 만족한다. 다음에 또 비슷한 방법이 필요하면 stream의 메소드들을 한 번 정주행하자. + 아샬님 강의를 보다가 어제 액션플랜대로 예상대로 돌아가지 않는 현상을 발견해..
-
20220909 TIL 람다식 너도 객체?TIL 2022. 9. 9. 15:31
맞다. 람다식도 객체다. 어제 진님께서 자바에서 람다식도 객체라는 충격적인 말씀을 해주셨다. 생각해보면 자바는 모든 게 다 객체를 통해서 이뤄질 수 밖에 없으니 그럴 듯 하지만서도 람다식이 전혀 객체인 티를 내지 않고 있으니, 참 잘 만들어뒀구나 감탄을 했다. 자바에서 람다식을 쓰는 건 다른 언어에서 익명함수를 써봤다면 어렵지 않다. 오히려 람다식을 이용하면 굳이 클래스를 내부에 메소드를 구현할 필요 없이 간단하게 코드를 짤 수 있다. 하지만 내부적으로 어떤 과정을 거치는 지 알려면 상당히 많은 개념들이 필요하다. 보통은 몰라도 람다식을 쓰는데 아무 문제가 없지만, 제대로 쓰려면 람다식이 어떻게 실행되는지 알고 있어야 한다. 람다식이 실행되었다는 것은 익명클래스로 만들어진 객체의 메소드가 실행이 되었다는..