# 데브코스 01일차 회고(03.22)

2649 단어 KDT데브코스KDT

기초가 부실한 상황

개발공부를 한 지 대략 반년 만에 다른 개발 공부를 하는 사람을 볼 수 있었습니다. 다른 대단한 분들을 보면서 부족한 것을 느꼈고, 자극받았습니다.

다른 사람들을 보고 자극받는 것과 별개로, 스스로 반성할 만한 부분이 많았습니다. 개념, 용어 등 기초에 있어서 사실은 잘 모르고 있었다는 것을 알게 되었기 때문입니다.

완전 처음 공부할 때만 하던 개발환경 갖추기, Hello World 띄우기를 다시 천천히 살펴 보니 내가 잘 모르고 있었구나 하는 것을 알게 되었습니다. 반 년 정도 공부를 했다면, 매일 코드를 칠 때마다 보는 프로젝트 파일의 폴더가 각각 무슨 뜻인지는 보자마자 설명할 수 있어야 한다고 생각합니다. 메이븐이나 그레이들이 빌드 도구라고만 대답할 수 있는 게 아니라, 빌드가 뭔지, 컴파일이랑은 뭐가 다른지, 그 정도는 바로 답할 수 있어야하지 않을까 하고 문득 느꼈습니다.

다시 처음부터 익숙하다고 생각했던 개념들을 하나 하나 제대로 아는 것인지 공부를 시작했습니다. 앞으로 갈 길이 멀다고 느꼈지만, 그래서 더 천천히 꾸준히 해야겠습니다.

흥미로웠던 포인트

  • gradle wrapper를 gitignore에 넣어도 되느냐에 대한 논쟁

    • 그레이들 버전이 오를 때마다 gradle-wrapper.properties파일 커밋을 날리고, 흉물스러운 JAR 파일이 담긴 리포지토리를 봤다는 개발자의 찐 분노를 보니 왜 넣자고 하는지 바로 이해가 되었고

    • 칼같이 공식 답변과 함께 wrapper jar파일 줄이느라 열심히 일하고 있다며 그레이들 개발자가 단 답변이 놀라웠습니다.

      이전에도 이게 왜 안 되나 싶은 것들에 대해 영어권 글을 찾다 보면 개발자들 답변이 많던데,

      개발 관련 툴 만드는 사람들이면 저렇게 포럼에 일일히 다 답변해주는게 요구사항 파악이랑 관련된 사항이려나 싶기도 하고,

      단순히 이게 좋다 저게 좋다가 아니라 개발 철학 자체가 필요한 문제구나 싶기도 했습니다.

      예전에 왜 인터페이스에서는 protected를 쓸 수 없을까에 대해 궁금해서 글을 찾아봤었는데(링크), 여기서 참고하라고 띄운 JDK 이슈 글이 생각나더라구요.(임시로 위 두 글에 대해 만들었던 번역본, 퀄리티는 장담 못함)

      단순히 ~을 위반해서 그렇다 하는게 아니라, 자바라는 언어 자체의 지향점에 대한 철학이 있구나 싶어서 인상적이었습니다.

  • 초기화 블록

    • String.class를 보다가 초기화 블록을 쓰는 코드를 봄. 초기화 블록이 뭐 하는 건지 까먹었는데, 덕분에 다시 정리하게 되었습니다.
        static final boolean COMPACT_STRINGS;
    
        static {
            COMPACT_STRINGS = true;
        }
    • COMPACT_STRINGSfalse이면 무조건 UTF-16 방식으로 인코딩 된다고 하는데,

      재밌는건 이 변수 값은 실제로는 JVM으로 주입된다고 하는데, 저런 것도 되는구나 싶어서 매우 신기

    • 초기화 블록을 다시 공부하다가 그럼 스프링 생성자 주입에서도 먹히겠네, 하고 시험했더니 역시 됨. 근데 이거 어따 쓰냐고 물으면 생각이 안 나네요

좋은 웹페이지 즐겨찾기