자바(7)
-
백엔드 개발자의 코틀린 입문기 - 코틀린이 얼마나 좋길래? 자바에서 옮겨가도 될까?
들어가며 이 글은 Java Spring으로 백엔드 개발을 하던 개발자가 Kotlin으로 전환한 후기를 담은 글입니다. Java에서 Kotlin으로의 전환을 고민 중인 백엔드 개발자 분들에게 도움이 되면 좋겠습니다. 왜 자바에서 코틀린으로 넘어가나요? 우리나라에서 가장 대중적인 백엔드 개발 기술 스택은 단연컨대 자바 + 스프링일 것입니다. 그렇기에 백엔드 개발을 한다면 이 스택으로 경력을 이어나갈 확률이 매우 높은데요, JVM 기반으로, 자바와의 상호 호환성을 들고 나온 코틀린의 등장과 급부상으로 코틀린 + 스프링, 이른바 코프링도 최근에 많은 주목을 받고 있습니다. 저는 일찌기 코프링 도입을 간절히 원했기에 코틀린으로의 전환을 강력하게 건의해 왔는데요, 이럴 때 접하는 반응들 중엔 이러한 것들이 있었습니..
2022.05.06 -
디자인 패턴 3. 옵저버 패턴(Observer Pattern)
옵저버는 프로토스의 정찰기 유닛이 아니다 위키백과에서는 옵저버 패턴을 아래와 같이 설명하고 있습니다. 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. 객체의 상태 변화를 관찰한다, 가 이 설명의 핵심이라 할 수 있는데요, 자비스도 아니고 어떻게 일개 프로그램 따위가 객체의 상태 변화를 관찰씩이나 할 수 있다는 것일까요? 바로 포켓몬 GO 구현을 예로 들어 알아보도록 합시다. 이 글에서 설명할 포켓몬 GO의 실제 구현은 제가 설..
2020.05.05 -
Spring Boot - 스케줄러 사용해보기 1. FixedDelay vs FixedRate
들어가며 최근에 있었던 일입니다. 제가 만든 컴포넌트를 코드 리뷰를 통해 팀원들과 공유하는 자리를 가졌었는데, 스케줄링 된 작업에 대해서 이런 질문이 들어왔었습니다. 어라.. 저 작업이 0.5초마다 실행되게 설정되어 있는데요, 만일 작업의 수행속도가 0.5초를 넘기면 어떻게 되나요? 다음 작업이 무시되나요? 아니면 스레드가 하나 더 생겨서 어떻게든 0.5초마다 계속 실행되도록 하나요? 아니면 밀린 만큼 연달아 실행하나요? 이 질문은 중요했습니다. 왜냐하면 해당 작업은 무조건 순차적으로, 동시가 아닌 딱 1번씩만 실행되어야만 하는 작업이었기 때문이죠. 저는 스프링의 스케줄링에 대해 대략적인 조사를 해 보았을 때의 기억에 의존해서, "제가 알기로 기본 설정이 싱글 스레드이기 때문에, 수행 시간이 밀린다고 멀..
2020.02.23 -
디자인 패턴 1. 소개
디자인 패턴이 뭔가요? Design Pattern이란 말만 들었을 때에는, 뭔가 그림을 그려야 할 것 같지만 사실 디자인은 단순히 그림을 그리는 의미가 아니라 '설계'의 의미를 가지고 있습니다. 즉, 디자인은 설계에 해당합니다. 그렇다면 프로그래밍에서 디자인 패턴은 어떤 의미일까요? '프로그램 설계 유형' 정도로 풀어서 쓸 수 있지 않을까요? 프로그램을 설계한다는 의미는 단순히 코딩을 하는 것 그 이상의 문제를 이야기합니다. 진부하지만 회원가입의 예를 들어보고자 합니다. 회원가입에는 보통 성별을 남/녀로 받습니다. 그렇다면 회원 정보를 담을 클래스를 만들 때, 어떻게 해야할까요? 일단 첫 번째 예를 봅시다. ManMember와 WomanMember를 각각 Class로 만들었습니다. 이름과 나이를 각각 멤..
2020.02.08 -
디자인 패턴 0. 공부 시작
들어가며 작년부터 디자인 패턴의 필요성을 느끼고 있었습니다. 단순한 계기는 취직 준비에 필요하단 생각이었고, 현재는 개인 개발 역량을 향상시키는 데에 도움을 줄 수 있을 것이라 여기고 있습니다. 주위에서 가끔 어떤 사람들이 '디자인 패턴을 굳이 공부할 필요는 없다'고 말하기도 합니다. 경력직에서도 디자인 패턴을 잘 모르는 사람들이 있다면서요. 그러나 동시에 '비록 디자인 패턴을 모르더라도, 막상 그 사람들이 작업하는 것을 보면 디자인 패턴을 체화하고 있더라'는 말까지 덧붙였습니다. 즉, 디자인 패턴을 따로 시간을 내서 공부를 하든, 하지 않든, 결국에는 필요한 만큼은 스스로 습득하게 된다는 내용이었습니다. 이 말을 종합해보았을 때, '꼭 안해도 된다.' '하면 좋다' '하면 안 되는 건 아니다' 정도의 ..
2020.02.08 -
왜 자바 Spring만 뽑나요? 꼭 배워야 하나요?
들어가며 취준생 시절 때부터도 쭉 간직해 온 의문이 있었습니다. 내로라하는 대기업들의 구직 공고를 보면, 항상 따라오는 조건들이 있었죠. Java 언어 사용이 능숙한 분 Spring Framework 개발 경험이 있으신 분 Java를 배우긴 했지만, 백엔드에 사용해본 적은 없었기에 이 부분은 항상 지원에 걸림돌이 되곤 했습니다. 도대체 자바 스프링이 뭐하는 녀석이길래 이 기업 저 기업에서 다 찾을까요? 나름대로 정리한 내용을 글로 옮겨보기로 했습니다. 그리고 '그렇다면 Spring을 배워야만 할까?' 하는 고민에 빠지신 분들께 제 의견을 전달해보고자 합니다. 주의사항 : 필자는 백엔드 개발에 이제 막 뛰어든 초짜입니다. 백엔드의 유구한 역사에 대해서는 당연히 잘 모르며, 제가 추측한 이유들도 잘못된 부분..
2020.01.26