전체 글(114)
-
킹시국 재택 근무 체험기 - 1
들어가며 올해는 초장부터 정말 하드코어하다. 19년도 말에 발생한 코로나 바이러스가 초기 대응 시기를 놓쳐 전세계로 퍼지고 말았다. 태어나서 지금까지 들어본 현대 전염병들을 헤아려 본다. 아폴로 눈병, 사스, 신종 플루, 메르스 등. 전염병 중 어느 것 하나 사소한 것이 없겠지만, 어찌되었건 사태의 심각성은 그간 겪어 왔던 것 중에선 역대급이라는 것은 의심할 여지 없어 보인다. 정부에서 위생을 뛰어 넘어 '사람들과 만나지 마세요'라고 권고하고, 중고등학교는 개학을 늦추고, 대학교는 원격 강의를 시작했으며, 일부 회사들은 재택 근무를 실시했다. 내가 다니는 회사도 예외는 아니어서, 2월 말부터 본격적인 전사 재택근무를 하고 있다. 그렇게 한 달이 흘렀고, 그 과정에서 느낀 소소한 것들을 공유하고자 한다. ..
2020.03.23 -
Spring Boot - 스케줄러 사용해보기 1. FixedDelay vs FixedRate
들어가며 최근에 있었던 일입니다. 제가 만든 컴포넌트를 코드 리뷰를 통해 팀원들과 공유하는 자리를 가졌었는데, 스케줄링 된 작업에 대해서 이런 질문이 들어왔었습니다. 어라.. 저 작업이 0.5초마다 실행되게 설정되어 있는데요, 만일 작업의 수행속도가 0.5초를 넘기면 어떻게 되나요? 다음 작업이 무시되나요? 아니면 스레드가 하나 더 생겨서 어떻게든 0.5초마다 계속 실행되도록 하나요? 아니면 밀린 만큼 연달아 실행하나요? 이 질문은 중요했습니다. 왜냐하면 해당 작업은 무조건 순차적으로, 동시가 아닌 딱 1번씩만 실행되어야만 하는 작업이었기 때문이죠. 저는 스프링의 스케줄링에 대해 대략적인 조사를 해 보았을 때의 기억에 의존해서, "제가 알기로 기본 설정이 싱글 스레드이기 때문에, 수행 시간이 밀린다고 멀..
2020.02.23 -
디자인 패턴 2. 스트래티지 패턴(Strategy Pattern)
스트래티지 패턴이 뭔가요? 세상 모든 지식을 알고 있는 위대하신 위키 백과님은 스트래티지 패턴(== 전략 패턴)을 아래와 같이 정의하고 있습니다. 전략 패턴 또는 정책 패턴은 실행 중에 알고리즘을 선택할 수 있게 하는 행위 소프트웨어 디자인 패턴이다. 전략 패턴은 특정한 계열의 알고리즘들을 정의하고 각 알고리즘을 캡슐화하며 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다. 저 글귀를 읽고 '아! 그렇구나, 스트래티지 패턴 공부 끝!' 하고 잠자러 들어갈 수 있는 사람은 애초에 이 포스팅을 읽고 있지 않겠죠. 저 설명에서 캐치하고 가야할 포인트는 두 가지입니다. 실행 중에 알고리즘을 선택한다. 이 두 가지가 스트래티지 패턴의 골자입니다. 이제부터 스트래티지 패턴이 무엇이며, 어떻게 쓰일 수 ..
2020.02.16 -
디자인 패턴 1. 소개
디자인 패턴이 뭔가요? Design Pattern이란 말만 들었을 때에는, 뭔가 그림을 그려야 할 것 같지만 사실 디자인은 단순히 그림을 그리는 의미가 아니라 '설계'의 의미를 가지고 있습니다. 즉, 디자인은 설계에 해당합니다. 그렇다면 프로그래밍에서 디자인 패턴은 어떤 의미일까요? '프로그램 설계 유형' 정도로 풀어서 쓸 수 있지 않을까요? 프로그램을 설계한다는 의미는 단순히 코딩을 하는 것 그 이상의 문제를 이야기합니다. 진부하지만 회원가입의 예를 들어보고자 합니다. 회원가입에는 보통 성별을 남/녀로 받습니다. 그렇다면 회원 정보를 담을 클래스를 만들 때, 어떻게 해야할까요? 일단 첫 번째 예를 봅시다. ManMember와 WomanMember를 각각 Class로 만들었습니다. 이름과 나이를 각각 멤..
2020.02.08 -
디자인 패턴 0. 공부 시작
들어가며 작년부터 디자인 패턴의 필요성을 느끼고 있었습니다. 단순한 계기는 취직 준비에 필요하단 생각이었고, 현재는 개인 개발 역량을 향상시키는 데에 도움을 줄 수 있을 것이라 여기고 있습니다. 주위에서 가끔 어떤 사람들이 '디자인 패턴을 굳이 공부할 필요는 없다'고 말하기도 합니다. 경력직에서도 디자인 패턴을 잘 모르는 사람들이 있다면서요. 그러나 동시에 '비록 디자인 패턴을 모르더라도, 막상 그 사람들이 작업하는 것을 보면 디자인 패턴을 체화하고 있더라'는 말까지 덧붙였습니다. 즉, 디자인 패턴을 따로 시간을 내서 공부를 하든, 하지 않든, 결국에는 필요한 만큼은 스스로 습득하게 된다는 내용이었습니다. 이 말을 종합해보았을 때, '꼭 안해도 된다.' '하면 좋다' '하면 안 되는 건 아니다' 정도의 ..
2020.02.08 -
왜 자바 Spring만 뽑나요? 꼭 배워야 하나요?
들어가며 취준생 시절 때부터도 쭉 간직해 온 의문이 있었습니다. 내로라하는 대기업들의 구직 공고를 보면, 항상 따라오는 조건들이 있었죠. Java 언어 사용이 능숙한 분 Spring Framework 개발 경험이 있으신 분 Java를 배우긴 했지만, 백엔드에 사용해본 적은 없었기에 이 부분은 항상 지원에 걸림돌이 되곤 했습니다. 도대체 자바 스프링이 뭐하는 녀석이길래 이 기업 저 기업에서 다 찾을까요? 나름대로 정리한 내용을 글로 옮겨보기로 했습니다. 그리고 '그렇다면 Spring을 배워야만 할까?' 하는 고민에 빠지신 분들께 제 의견을 전달해보고자 합니다. 주의사항 : 필자는 백엔드 개발에 이제 막 뛰어든 초짜입니다. 백엔드의 유구한 역사에 대해서는 당연히 잘 모르며, 제가 추측한 이유들도 잘못된 부분..
2020.01.26