개발 이모저모22 Java 인터페이스를 사용하는 이유 인터페이스가 아직도 이해가 안 돼. 책 찾아 보고 있는데 봐도 잘 모르겠네... 인터페이스를 쓰는 이유가 뭐야? 학원 동기였던 친구에게 인터페이스에 대한 질문을 받고 두 명을 대상으로 간단하게 자료를 준비해서 강의를 했는데, 혹시 같은 물음을 가지고 있는 분들께 도움이 될까 해서 내용을 공유합니다. 이 글은 자바 인터페이스에 대한 세 가지 궁금증에 대한 답이 될 수 있습니다. 인터페이스를 "왜" 사용하는지 모르는가? 인터페이스를 "어떻게" 사용하는지 모르는가? 인터페이스가 "무엇인지" 모르는가? 깊은 내용은 다루고 있지 않고, 독자의 타겟은 국비학원에서 자바 언어를 접한지 얼마되지 않으셨거나 막 국비학원을 수료한 초보 개발자입니다. 저도 학원에서 인터페이스를 처음 접했을 때 대체 왜 쓰는지 이해가 안 됐.. 2022. 6. 11. SpringBoot 전략패턴 + IF 분기 없애기 전략패턴을 사용한 이유 여러 웹툰 플랫폼의 정보를 한번에 확인할 수 있는 종합 웹툰 플랫폼을 만들고 있었는데 한 가지 고민이 있었다. 네이버 웹툰, 카카오 웹툰, 레진코믹스 등 각각의 웹툰 플랫폼의 정보를 크롤링 해와야 하는데 플랫폼의 종류가 워낙 많기 때문에 확장성에 대한 고려가 필요했던 것. 확장성을 고려하지 않고 작업할 경우 각각의 웹툰 플랫폼마다 서비스 계층의 메소드를 추가한다고 생각하면... 끔찍하다. 확장성을 고려한 설계를 생각하다가 떠올린 게 전략 패턴(Strategy Pattern)이다. 각기 다른 요청을 처리하는 메소드 자체는 하나로 두고 들어온 요청을 파악해서 적절한 로직으로 분기할 수 있다면 추가할 플랫폼이 생겼을 때 개발이 수월하리라 판단했다. 전략패턴이란? 전략패턴은 행위를 인터페.. 2022. 6. 8. 그림으로 공부하는 IT 인프라 구조 후기 IT 인프라란 IT 인프라는 IT 환경을 운영하고 관리하는 데 필요한 구성 요소들 전반을 가리킨다. 세분화하자면 하드웨어, 운영체제, 네트워크, DB 정도의 카테고리로 나눌 수 있다. 인프라의 특징은 "사용자는 구조를 이해하지 않고도 간단히 이용할 수 있다"는 것인데, 개발자의 입장에서는 당연한 장점이지만 약간의 불안감도 있다. 작성한 코드는 작동하는데, 이게 왜 작동된지 알 수 없다는 것(코드레벨에서뿐만 아니라). 간단한 개발을 넘어서 사용자가 있는 서비스에서는 이 두려움이 더 커질 수밖에 없다. 왜 작동하는지를 알 수 없다면 일어날 수 있는 에러 케이스를 예측할 수 없고, 해결할 수 없으며 최적화하는 것은 더더욱 불가능하다. 결국은 추상화된 인프라의 내부를 파헤쳐야만 한다. 이는 인프라 엔지니어가 아.. 2022. 6. 7. 자바 성능 튜닝 이야기 후기 오래된 책에서 바라는 것은 기술은 계속해서 발전한다. 새로운 버전이 나오거나 보다 나은 Tool의 등장으로 대체된다. 본 책은 2008년에 초판이, 2012년에 개정판이 집필되었는데 책에서는 Tool의 추천이나 사용법에 대한 서술이 많았다. 결국 책에서 언급되는 기술마다 현재에도 사용되고 있느냐에 대한 검증이 필요했고, 대부분이 활발하게 사용되고 있지는 않았다. 단적으로 책의 시대에서는 JDK 1.4버전을 사용하고 XML이 표준으로 사용되고 있고, JDBC를 row한 방식으로 사용하고 있다. 그렇다고 해서 모든 오래된 책에서 아쉬움이 느껴지는 것은 아닌데, 이번에는 유독 아쉬움이 많이 느껴졌다. 기술을 지탱하고 있는 원리나 불변의 영역에 대해 충분히 추상화된 학습자료를 제시하는 책은 십 년이 지나도 가치.. 2022. 6. 6. 스프링 입문을 위한 자바 객체지향의 원리와 이해 후기 당신의 두 번째 자바 책 책의 모토, 당신의 두 번째 자바 책 자바 기본서 한 권을 정독 했고, 아주 기초적인 자바에 대한 이해를 가진 상태에서 다음 단계에 대한 갈증이 있었다. 이펙티브 자바를 몇 페이지 읽어보다가 아직은 때가 아니다 싶어 덮었던 적이 있다. 두 번째 자바 책이라고만 말해줘도 읽었을 텐데 게다가 스프링 책이라니. 읽는 동안 놀랍도록 재밌었다. 나는 새로운 기술을 배우는 게 느린 편인데, 이유를 추측하자면 하나의 새로운 개념을 만나면 어느 정도의 선까지 동작 원리를 파악하지 못하면 아예 이해를 못해버린다. 모르는 기술을 어떻게든 급히 써야만 하는 상황이라면 혼자서 "이렇지 않을까?" 하고 소설을 쓰고 스스로를 대충 납득시킨 후에 써버리는데, 사용을 사실 알아보면 전혀 다른 원리를 가진 경.. 2022. 5. 18. *.do 없애고 깔끔한 HTTP API 만들기 0. *.do 방식에 대한 지극히 개인적인 소견 요즘 생긴 취미는, 웹서핑을 할 때 URI를 유심히 보는 것이다. 쿼리스트링이 몇 개나 붙어있는지 리소스는 어떤 방식으로 표기하는지 보다 보면 은근 재밌다. 단순한 쿼리스트링에도 암호화가 돼있는 걸 보면 신기하고, 가끔 URI 만 봐도 어떤 프레임워크로 개발했는지도 보인다. 예비군 사이트 주소가 참 재밌는데, yebigun 이라는 네이밍도 재밌고 뒤에 붙은 1 때문에 피씽 사이트 같기도 하다. 그리고 게시글의 주제인 .do extension이 URI에 포함되어 있다. https://www.yebigun1.mil.kr/dmobis/index_main.do 이 .do 확장자는, 취미를 즐기다보면 꽤 자주 보이는데 뭔가 굉장히 보기 껄끄럽다. 단순히 RESTfu.. 2022. 5. 9. 이전 1 2 3 4 다음