부제: 카카오 경력 면접 후기, 카카오 경력 코딩테스트 후기 작년 4월 초쯤 지원했으니 딱 1년이 지났다. 1년이나 지나서 가물가물하지만 경력공채 후기를 남겨본다. 기억이 잘안나서 오히려 보안유지(?) 에 좋을 것 같다. 서류 https://careers.kakao.com/ 에서 지원할 수 있다. 보통 카카오는 조직별로 소규모 채용을 하는 것으로 알고있다. 하지만 나는 대규모 경력 공채에 지원했다. 그동안 갈고 닦은(?) 이력서를 연필로 꾹꾹 눌러쓰듯 심혈을 기울여 제출했다. 서류 심사를 꽤 엄격하게 본 것 같던데.. 무난하게 합격할 수 있었다. 다른 회사에 비해 이력서 양식이 간단하다는 느낌을 받았다. 학력/자격증과 같은 항목은 아예 필수 입력 항목이 아니었다. 추천인을 기재하는 항목도 있었다. 나는 ..
REST API 웹 서버를 개발할 때 모든 Request와 Response를(Header와 Body 전부!) 하나의 JSON Object formate에 로깅하고 싶을 때가 있다. 이번 포스팅에서는 HttpServletRequestWrapper을 활용한 Request body를 처리기법으로 로깅하는 법에 대해 다루겠다. (How to log whole request and response at once?) 얼핏 생각하면 Request 및 Response를 logging 할 때 aspect를 활용해서 로깅하면 될 것 같다. 그러나 이건 좋은 방법이 아니다. 이유는 크게 두가지인데.. 1. Request와 Response를 한번에 로깅할 수 없다.2. Request의 Stream은 중복해서 읽을 수 없다. ..
애플리케이션에서 설정에 관련된 상수는 소스코드와 별도로 관리하는 것이 기본이다. 설정과 관련된 값을 소스코드 내부에서 관리하면.. 값이 바뀔 때마다 매번 컴파일을 해야해서 번거롭기 때문이다. Spring Boot는 프로젝트 설정에 쓰이는 내용 또는 각종 상수를 .yml 이나 .properties 파일에 저장할 수 있게 지원한다. 이번 포스팅에서는 .properties의 상수를 Enum에 초기화 하는 법을 간단히 알아보겠다. Spring Boot에서 .properties 파일의 값을 가져올 때는 @Value 라는 어노테이션을 쓴다. 이것을 쓰면 Bean 객체가 초기화 될때 @Value에 지정된 값을 해당 프로퍼티에 초기화 한다. setter를 활용해서 초기화를 하는 것도 가능하다. 아래의 간단한 예제를 보..
부제: 트랜잭션 격리수준, 트랜잭션 뜻 Transaction. 영한사전에 검색하면 '거래'라는 뜻이다. 전산학(Computer Science)에서 일컫는 트랜잭션(Transaction)은 조금 다르다. 쉽게 풀어쓰자면... 모든 명령어의 성공 또는 실패를 한번에 처리한다는 뜻이다. 조금 더 어렵게 설명하면 데이터베이스의 상태를 바꾸는 기능을 수행하기 위한 작업의 단위 이다. 이 기능이 정상적으로 동작하려면 성공 또는 실패가 한번에 일어나야 한다. 즉, 트랜잭션 처리가 잘 끝나야 한다. 지금부터 트랜잭션 처리가 왜 필요한지 알아보자. 1. 트랜잭션 처리가 필요한 이유. 가장 많이 쓰이는 예제. 계좌 이체를 예로 들어보겠다. 철수가 영희에게 1000원을 송금하는 상황은 아래와 같이 요약할 수 있다. 철수의 ..
평소 선망하던 회사에 입사한지 4달이 다 되어간다. 4달밖에 안됐는데 간절하게 이직을 준비했던 순간이 먼 옛날이었던 것 같다. 인간은 역시 간사한 동물이라, 이직을 준비하던 때 보다 절반도 공부를 안하는 것 같다.. 블로그에 글을 쓰는 빈도도 점점 줄어드는 듯한 느낌이 든다. 그래서 이번 포스팅에는 내가 이직에 성공하면 꼭 써야겠다고 다짐했던 내용을 쓸 것이다. 주제는 이직을 준비하며 내가 느낀점들이다. 이직을 준비하는 주니어 개발자에게 도움이 되었으면 좋겠다. 더불어 나도 초심을 찾았으면 좋겠다 (ㅎㅎㅎㅎ) 1. 일단 실천. "네이버 / 카카오 가려면 준비 어떻게 해야해요?" 인터넷에서 정말 많이 보이는 유형의 질문들이다. 물어볼 수도 있다고 생각할 수 있지만, 이 질문을 하는 취준생(이직 준비생)도 ..
부제: 개발자 새로운 언어 공부, 프로그래밍 언어 공부 요즘 새로운 프로그래밍 언어를 익혀야만 하는 상황에 직면해있다. 사실 모든 프로그래머는 나와 같은 상황에 직면해 있을 것이다. 아직 경력도 짧고, 짧은 프로그래머 인생 평생 JAVA만 해왔는데 새로운 프로그래밍 언어를 무작정 시작하려니 힘들었다. 그동안 책을 훑어보거나, 인강을 듣거나, 다른 사람이 제작한 소스코드를 읽어보는 등 나름의 노력을 했는데 썩 만족스럽지 않다. 그래서 '정신 무장'을 위해 이 포스팅을 작성한다. 그러니까 본론은... "새로운 프로그래밍 언어를 빠르게 익히려면 무엇을 중점으로 봐야 하는가?" 이다. 그냥 나 혼자 생각해본 것이니 무조건 정답이라고 받아들이는 사람이 없었으면 좋겠다. 1. 기본적인 문법 문법을 알아야 소스코드를..
부제: 우아한형제들 서류, 우아한형제들 면접, 우아한형제들 코딩테스트 2017년 12월에 우아한 형제들 신입공채에 지원했었다. 기술 직군으로 지원했고, 1차면접에서 탈락했다. 비록 1차 면접에서 탈락했지만, 공공의 이익(?)을 위해 기억을 더듬어 후기를 남긴다. 0. 시작하기 전에 2018년 하반기에 쓰는 글이지만, 2017년 하반기 신입공채에 지원했다. 지원할 당시 1년 반 정도의 IT회사 근무 경력이 있었다. 대학 졸업 예정자와 2년 미만의 경력자는 지원할 수 있는 전형이었으므로 지원 자격을 맞출 수 있었다. 1. 서류/자기소개서 자기소개서 문항이 딱 하나였다. 자신을 자유롭게 소개하는 것. 내가 소프트웨어 개발을 좋아하는 이유, 개발자가 되고 싶은 이유, 우아한형제들에서 하고싶은 일 들을 담백하게 ..
부제: 라인플러스 면접. 라인플러스 코딩테스트. 라인플러스 서류 2018년 상반기에 라인플러스 신입공채에 지원했었다. 1차 면접에서 탈락하게 되었지만, 공공의 이익(?)을 위해 기억을 더듬어 후기를 남긴다 0. 시작하기 전에 지원할 당시 2년 정도의 IT 회사 근무 경력이 있었다. 그러나 신입 공채에 지원하기 위해 경력을 작성하진 않았다. 2017년 하반기 신입공채에도 지원했었는데, 그 때는 코딩테스트 전형에서 탈락했다. 2018 상반기 신입공채에 또 지원해서 1차면접까지 진출(?)한거 보면 서류 필터링은 따로 없나보다. 1. 서류 / 자기소개서 라인플러스는 B2C 서비스를 하는 IT 회사 치고는 자기소개서를 빡세게 보는 곳으로 유명하다. (경력직도 마찬가지 인 것 같다.) 그러나 2018 상반기 신입 ..
CentOS7 서버에 nginx 관련 세팅을 하다가 아래와 같은 오류 메시지를 발견했다. 오류가 나면서 configure reload, restart, start가 안된다. "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1014000 in /usr/share/nginx/modules/mod-http-geoip.conf:1 구글링을 좀 해보니, nginx를 official repository에서 설치하지 않고, epel에서 설치하면 이런 버전 충돌이 발생한다고 한다. RedHat 계열 Linux에는 nginx가 포함되어 있지 않아서, 대충 깔았던게 화근이 되었다. epel에는 너무 오래된 버전만 있나보다. 어쨌든..
클래스 설계할 때마다 제네릭 문법을 항상 까먹는다. 제네릭을 직접 사용할 일은 많지 않을 수 있다. 하지만 각종 라이브러리들에서 자주 쓰이므로 꼭 알아두는 것이 좋다. 그래서 정리해보는 제네릭 문법 포스팅. 사진출처: https://www.nisdon.com/2017/09/java-parametric-polymorphism-generics-udemy-course.html 제네릭(Generic)은 코드블럭 내부에서 쓸 자료형을 외부에서 지정하는 기법을 뜻한다. 여러가지 자료형을 허용하고 싶을 때 Object로 선언해버리면 깔끔하지만, 그렇게하면 원하지 않는 자료형이 입력되었을 때의 오류를 컴파일 시점에 잡아낼 수 없다. 1. Generic Class 클래스 내부에서 사용될 자료형을 지정하는 것이다. 대표적..