오늘도 끄적끄적

느리더라도 꾸준하게

오늘은 야놀자 서류상 퇴사일이다. (오늘까지 남은 연차를 사용했다.)
총 세 번의 이직 시도 끝에 성공할 수 있었다.
여태까지 신입으로만 이직(프론트엔드 신입(5개월 재직) -> 백엔드 중고 신입)했고, 지인 추천을 통해서만 면접을 봤는데
이번 이직에서는 지인 추천도 있었지만, 내 힘으로 스스로 지원해서 합격까지 한 케이스도 많아서 굉장히 뿌듯한 경험이었다.
나와 같은 2~3년 차 주니어 분에게 도움이 됐으면 하는 바람, 개인적으로 회고를 하고 싶어서 정리를 해봤다.

왜 퇴사를 결심했나

야놀자는 탄력 근무제(연장 근무를 했다면 다른 날 단축 근무 가능), 식비 지원, 분기별 야놀자 포인트 지급, 전용 사옥 등등의 좋은 복지들이 있다.
또한 Tech야, 놀자란 세미나를 할 정도로 탄탄한 개발문화와 유니콘 기업이 되는 등 굉장히 유망한 회사다.
그럼에도 불구하고 내가 퇴사를 결심한 계기를 크게 두 가지다.

  1. 가장 큰 요인은 개발에 집중하지 못하는 환경이었다.
    레저큐에서 야놀자로 조직이 이동되면서(완전히 퇴사 후 입사 처리되었다. 레저큐는 야놀자의 계열사인데 일부만 야놀자로 조직 이동이 된 상태다.) 레저큐의 인프라 쪽을 한 번 쭉 털고 가야하는 이슈가 있었다.
    평상시에 인프라에 관심이 많았던 내가 해당 업무를 맡게 되었고, 끝까지 털지 못하고 퇴사하게 되었다. (이후에는 시스템 엔지니어 쪽 팀에서 도와줄 예정인 걸로 알고 있다.)
    개발이 하고 싶었지만, 점점 인프라 쪽 업무의 비중이 높아지면서 내 정체성을 의심하기 시작했다.
    나는 서버 개발자인가? 아니면 시스템 엔지니어인가…?
    물론 인프라 쪽도 알면 좋지만, 아직까지는 개발이 더 마렵다는 생각이 들었다.
  2. 연봉
    대부분의 이직 사유 중 하나일 것이다.
    물론 나보다 열악한 근무 환경 속에서도 안 좋은 대우를 받으시는 분들도 있을 거다.
    하지만 사람의 욕심은 끝이 없어서 자꾸만 위를 올려다 보게 되었다.
    네임밸류 기업에서 시작을 한 게 아니기 때문에 첫 시작 자체가 높지 않았던 탓도 있었던 것 같다. (그렇다고 그렇게 낮은 편도 아니었다.)
더 읽어보기 »

Static Page Blog 테마 선정

Static Page로 만들어진 블로그들은 테마가 굉장히 중요하다.
네이버나 티스토리에는 있는 기본적인 기능들이 없는 테마들이 상당히 많다. (검색, 카테고리, 태그, 페이지네이션 등등)
따라서 디자인만 보고 골랐다가 커스터마이징하느라 시간을 날리기 십상이기 때문에 디자인과 기능 사이에 어느정도 절충안을 가지고 골라야한다.

나는 이전에 Hueman 테마를 살짝 커스터마이징해서 사용했다.
검색이나 카테고리, 메뉴 등등의 기능은 좋았지만 디자인이 좀 구려보였다.
다소 아쉽긴 했지만 블로그의 본질은 글쓰기이기 때문에 좀 더 가치있는 일에 집중을 하고 싶어서 큰 불만없이 사용하고 있었다.

더 읽어보기 »

EBS 다큐프라임 자본주의 제1부 돈은 빚이다
돌디 님의 금리, 돈은 가짜다 - 저축만 해서 망하는 이유 영상을 보면 좀 더 많은 인사이트를 쌓을 수 있다.

왜 한국은 한국 금리에만 의존할 수 없는 걸까?

그 이유는 바로 무역 때문이다.
대부분의 나라가 무역을 하기 때문에 그 나라의 금리에만 의존할 순 없을 것이다.
더군다나 우리 나라는 자원(석유, 나무, 철광석 등등)이 거의 없다.
대부분 외국에서 수입에 의존하기 때문이다.
이렇게 수출/수입을 할 때 쓰는 돈이 기축통화인데 우리나라의 통화는 기축통화가 아니기 때문에 우리나라의 금리에만 의존할 수가 없는 거다.

기축통화 - 우리가 미국 금리에 의존할 수 밖에 없는 이유

기축통화는 국제거래에 통용되는 결제 수단으로서 가장 의미있는 돈이 기축통화인데, 현재 기축통화는 미국의 달러($)이다.

더 읽어보기 »

EBS 다큐프라임 자본주의 제1부 돈은 빚이다를 보고 나면 더 많은 인사이트를 얻을 수 있다.

물가는 왜 상승하는가? (feat. 인플레이션)

수요가 늘어나거나 공급이 줄어들면 가격이 올라간다.(공급 부족)
예를 들면 참외 농사가 흉년이 일어나서 참외를 먹고 싶은 사람은 전과 같이 10명으로 고정적인데 참외의 갯수가 5개로 확 줄어들은 상황이거나,
어느날 참외가 암을 치료해준다는 소문이 돌아 참외는 100개가 있는데 참외를 사려는 사람이 1000명으로 늘어난 상황이다.

더 읽어보기 »

EBS 다큐프라임 자본주의 제1부 돈은 빚이다를 보고 나면 더 많은 인사이트를 얻을 수 있다.

돈은 어떻게 생성되는가?

개인이 돈을 만드는 가장 쉬운 방법은 돈을 버는 것이다.
좀 더 큰 관점에서 보면 돈 자체를 찍어내는 은행에서 돈을 만들어야 진정한 의미의 돈이 생성되는 것 같다.
하지만 이렇게 은행에서 찍어내는 돈은 실제 통화량(시중에 유통되고 있는 화폐의 양)의 극히 일부이다.
대부분의 돈은 눈에 보이지 않는다.
즉 대부분의 돈은 은행에 존재한다.

최초의 은행

더 읽어보기 »

람다의 바디에서는 파라미터 말고 바디 외부에 있는 변수를 참조할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
public class LambdaCapturing {
private int a = 12;

public void test() {
int b = 123;

final Runnable r = () -> System.out.println(a);

final Runnable r2 = () -> System.out.println(b);
}
}

이렇게 람다 시그니처의 파라미터로 넘겨진 변수가 아닌 외부에서 정의된 변수를 **자유 변수(Free Variable)**라고 부른다.
또한 람다 바디에서 자유 변수를 참조하는 행위를 유식한 말로 **람다 캡처링(Lambda Capturing)**이라고 부른다.

람다 캡처링의 제약 조건

더 읽어보기 »

스프링 부트부터 접한 스프링 알못이라 스프링에 대해 공부를 하다보니 너무나 모르고 있는 게 많아서 정리해봤다.
되게 간단한 건데 스프링 부트부터 접하면 몰라도 코드 짜는데는 문제가 없지만 개인적으로는 알고 있으면 너무나 좋은 내용같다.

어노테이션 없이 빈 설정

스프링이 관리하는 객체인 빈으로 생성하기 위해서 아래와 같은 어노테이션이 필수인 줄 알았다.
@Component, @Configuration, @Bean, @Service, @Controller, @Repository

하지만 직접 코딩을 해보니 이 생각은 거짓이었다.

더 읽어보기 »

내 PC에서는 잘 되는데 버그 제보자가 직접 모바일 웹에서 안 되는 걸 보여줬다.
그리고 내 모바일에서도 해봤고, 다른 사람들의 모바일에서도 전부 안 됐다. (안드로이드, iOS에서 크롬, 사파리, 삼성 인터넷 가릴 것 없이 다 안 됐다.)

PC에서는 잘 되고, 모바일에서는 안 된다… 나는 당연히 프론트 이슈로 여겼다.
혹시 서버 쪽 이슈일까봐 액세스 로그를 모니터링해보니 헬스 체크 이외에 로그가 안 찍히길래 자바스크립트 어딘가에서 오류가 나서 API 호출도 못 하는 거라고 확신했다.

더 읽어보기 »

사건의 시작

갑자기 Nginx가 Down 됐다는 알림이 와서 해당 서버로 접속해보니 Nginx 서비스는 정상적으로 떠있고…
curl도 때려보고, 브라우저에서 직접 URL로 접속해봤을 때 문제가 없었다.

1
2
3
4
5
6
7
8
9
10
# blackbox exporter configuration
modules:
http_health:
prober: http
timeout: 5s
http:
method: GET
valid_status_codes: [200]
preferred_ip_protocol: "ip4"
ip_protocol_fallback: false
더 읽어보기 »

사건의 발단

사내에서 사용하는 어드민(이하 어드민 A)/외부에서 사용하는 어드민(이하 어드민 B)이 사망하는 사례가 속출하였다.
그 시점은 내가 새롭게 서버를 옮긴 이후부터 발생했다.
내가 서버를 옮긴 것과 이 일이 관련이 없다고 생각했지만,
우선 내가 서버를 옮긴 이후에 발생한 사건이기도 해서 부검을 통해 사인을 밝혀내는 게 우선이었다.

왜 사망했나

1
2
3
org.springframework.dao.QueryTimeoutException: Redis command timed out; nested exception is com.lambdaworks.redis.RedisCommandTimeoutException: Command timed out
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:66)
at org.springframework.data.redis.connection.lettuce.LettuceExceptionConverter.convert(LettuceExceptionConverter.java:41)
더 읽어보기 »
0%