Spring-MVC 읽기 #1. 나는 왜 오픈소스를 읽을까?
코드! 쓰기 말고 읽기.
오픈소스에 기여
는 못하더라도 읽기
는 가능하다. 예전에 어떤 컨퍼런스에서 진성주 님이 이런 말을 했던 게 기억난다.
시인이 되고 싶은 사람은 다른 사람들의 시를,
화가가 되고 싶은 사람은 다른 사람의 그림을,
가수가 되고 싶은 사람은 다른 사람의 노래를
개발자인 우리도 다른 사람의 코드를 읽고 배울 필요가 있다. 어쩌면 우리는 일을 하다 보면 코드를 작성하는 시간보다 남의 코드를 읽는 시간이 더 많을지도 모른다.
어느 날 SLiPP 스터디에서 Spring Core 스터디를 하게 됐다. 이 스터디는 이론적으로만 알고 있던 Spring Context의 코드를 읽기 위한 스터디였다. 결과론적인 이야기일 수 있지만, 나는 이 스터디를 통해 개발자로서 많은 부분이 변했다고 생각한다.
첫 번째는 코드 읽는 게 두렵지 않다. 처음 Spring 코드를 읽기 위해서 몇 번의 시도를 했지만 모두 실패했다. 너무 어려웠기 때문이다. 처음 코드를 읽을 때 수많은 interface와 구현체들이 나를 맞이했다. 구조를 파악하고 이해하기 어려웠다. 하지만, 그 벽을 넘고 나니 새로운 코드 읽는 게 두렵지 않았다.
두 번째는 코드 읽는 속도가 빨라진다. 앞서 말했듯이 우리는 일하면서 코드 읽는 일이 많다. 새로운 코드를 이해하고 읽는 게 두렵지 않고 빨리 읽을 수 있게 된 거 같다. 자신감을 얻게 되는 건 덤.
세 번째는 좋은 사례를 찾게 된다. 나는 OOP 설계나 디자인 패턴은 책으로 이해하고 응용하기엔 많은 부족함이 있다고 생각한다. 그래서 오픈소스를 통해 OOP 설계나 디자인 패턴이 어떻게 적용되었는지 좋은 사례를 찾고 이해할 수 있었다.
하지만 첫 번째 변화에서 말했듯이 오픈소스를 분석하는 벽을 넘기란 어렵다. 오랜 시간 유지보수 되고 발전해온 오픈소스를 읽는 건 쉽지 않다. 그래서 이 글은 Spring-MVC의 코드를 읽고 정리하며 어떻게 읽고, 어떻게 배울 수 있는지 정리하는 글이 될 거 같다. 잘할 수 있을지는 모르겠다.
앞으로 쓰게될 글을 이해하기 위해서는 아래와 같은 선수 지식이 필요하다.
- Java 문법을 이해하는데 문제가 없다.
- HTTP를 이해하고 있다.
- Spring MVC를 사용해 웹개발을 해봤다.
- Tomcat을 사용해봤다. (아니여도 큰 문제는 없다.)
오픈소스 분석에 대한 참고 글
'Spring Framework > Spring boot' 카테고리의 다른 글
Spring-MVC 읽기 #5. AbstractDispatcherServletInitializer와 AbstractAnnotationConfigDispatcherServletInitializer (0) | 2020.09.04 |
---|---|
Spring-MVC 읽기 #4. AbstractContextLoaderInitializer (0) | 2020.09.04 |
Spring-MVC 읽기 #3. Spring-MVC의 시작 (0) | 2020.09.04 |
Spring-MVC 읽기 #2. 빌드 (0) | 2020.09.04 |
실행 중인 Spring Boot pid 파일 생성 (0) | 2020.09.04 |
CompletableFuture 비동기 처리로 성능 개선하기 (0) | 2020.09.04 |
Spring Data JPA 같은 이름, 다른 type인 2개의 @Entity인 경우 주의 사항 (0) | 2020.09.04 |
Spring Batch의 동작 코드 #Step 생성과 실행 (0) | 2020.09.04 |