Search
Duplicate

2021년 7월 3주차 회고록 - 괜찮지 않은데 괜찮은 척 했다.

지금 내 상황이 꼭 그렇다는건 아니다. 이직을 준비하며 자신감이 떨어지긴 했지만 아직 번아웃이 온 것도아니고, 그냥 꾸준히 하면 되겠거니 하면서 살고 있다.
하지만, 괜찮지 않은데 괜찮은 척 했다. 라는 책의 서두는 많은 공감대를 일으킨다. 꼭 현재진행형이 아니라 과거완료형이더라도 공감할 수 있기 때문이다. 물론, 현재진행형인것도 포함되어 있다.
꽤나 많은 사람들은 괜찮지 않은데 괜찮은 척을 한다.

예스맨의 비애

나는 거절을 잘 못한다.
젊었을적에는 거리에서 여러 구호단체, 사이비종교들에게 잡혀서 수 시간씩 얘기를 들은적도 많다.
좀 더 정확히 말하자면 눈치를 많이 보고 배려아닌 배려를 하곤 한다.
집앞으로 찾아온 교회 아주머니들이 하는 얘기와 잠깐만 보면 된다고하는 종교 홍보 영상을 불편한자세로 서서 40분씩 보면서도 중간에 끊지도 못하고 속으로만 끙끙거리면서 다 보고는 한다.
과거에도 그렇지만 최근에도 이런 내 성격으로 인해 라이프사이클이 좀 엉망이 되었다.
과거에는 와우 지금은 로스트아크라는 게임이 그렇다. 사실 나는 쉽게 질리는 편이기에 게임을 하면 금새 질려서 맛만보고 삭제하는 편이다. 특히, 내가 노가다 혹은 고생하는 비용대비 성장율이 저조해지는 고렙구간이 되면, 이 무의미한 사냥 혹은 노가다를 어째서 해야하는가 고민하다가 자고일어나자마자 삭제하는 편인데, 예전 대학원을 끝내고 나와 잠깐 시작했던 와우내에서 동갑내기 친구들을 알게되며 이런 찍먹만 하는 내 게임라이프에 큰 변화가 생겼다.
지겨운 구간이나 슬슬 질리는 타이밍이 되어도, 같이 대화하면서 게임을하고 그 당시 그 친구들 역시 모두 취준생이나 프로게이머등을 준비하는 친구들이기에 몇날 몇일 잠도안자면서 게임을하곤 했는데, 여기서도 나는 그만 쉬고싶거나 이제 슬슬 끄고싶은데, 분위기가 너무 좋고, 다들 신나하는 분위기라 눈치만보다가, 몇시간이고 힘들어하면서 같이 게임을 했었다.
평소같으면 삭제를 하거나 껐을 타이밍에도 이 분위기에서 차마 나 그만할게, 혹은 이제그만 끄고 자러간다~, 공부하러간다~ 와 같은 말을 하지 못하고, 눈치만 보다가 다른 친구가 나간다고하면 그럼 나도~ 이러면서 나가곤 했다.
그리고 최근 로스트 아크라는 게임을 같이 하게되었는데, 같은 현상이 반복되고 있다.
혼자 할 때의 나는 많아야 1~3시간정도 하면 집안일도 해야하고 공부도해야하고, 질리기도 하기 때문에 게임을 꺼야하는데, 같이 파티로 플레이하다보면 흐름을 끊지 못하고 끙끙거리면서 퇴근에 영향가기전까지 같이 게임을 한다.
다행히 회사에서 요즘 일이 바쁘지 않기에 승인하에 개인공부를 진행하다보니 하루에 5~6시간 이상의 학습은 꾸준히 하고있지만, 평소엔 집에서도 3~5시간정도는 개인공부를 하고 포스팅도 진행했는데, 요샌 회사에서만 공부를 하고있으니 매일매일 5시간정도는 손해를 보고있는 것 같다.
아닌건 아닌거고 상대방의 흐름을 끊는 것을 두려워하지 말아야하는데, 참 쉽지 않다.
하나같이 나한테 해당되는 케이스라 너무 공감이 많이 간다.
고맙다는 말에 뿌듯해하는 모습까지...

학습 로그

3주차의 나는 무엇을 학습했고, 무엇을 포스팅했을까?

이펙티브 자바

아이템 42, 43, 44 를 포스팅했으며, 정말 간단하게 요약하면 다음과 같다.
아이템 42: 익명 클래스보다는 람다를 사용하라.
: 자바 8에 나온 람다(Lambda)를 이용하여 좀 더 간결하고 명시적인 코드를 구현할 수 있기에 대부분의 경우 익명클래스보다 람다식을 사용하는게 좋다. 더하여 제네릭을 이용해 타입추론도 가능하기에 타입을 일일이 명시해줄 필요도 없어진다. 하지만 this가 바깥 인스턴스를 가리키기에 함수 객체 자신을 가리켜야 할 경우에는 익명 클래스를 쓰도록하자.
아이템 43: 람다보다는 메서드 참조를 사용하라.
: 코드를 간결하고 명시적으로 하기 위해 람다식을 썼다면 이 람다식에서도 내부의 로직을 직접 만들어야하는경우가 아니라 정적 유틸 클래스의 메서드(ex: Integer.sum(a,b))를 사용하거나, 외부에 존재하는 로직을 사용할 경우 메서드 참조를 사용하면 더 간결하게 사용할 수 있다.
이러한 메서드 참조 유형은 정적, 한정적인 인스턴스, 비한정적인 인스턴스, 클래스 생성자, 배열 생성자등에서 사용될 수 있다.
아이템 44: 표준 함수형 인터페이스를 사용하라.
: 이러한 람다식을 사용하기 편하게 해주는 것 중 하나가 하나의 추상클래스만을 가지는 함수형 인터페이스(@FunctionalInterface)인데, 꽤나 많은 포맷의 함수형 인터페이스는 java.util.function 패키지 내부에 표준화되어 제공되고 있다.
인터페이스함수 시그니쳐UnaryOperator<T>T apply(T t)String::toLowerCaseBinaryOperator<T>T apply(T t1, T t2)BigInteger::addPredicate<T>boolean test(T t)Collection::isEmptyFunction<T, R>R apply(T t)Arrays::asListSupplier<T>T get()Instant::nowConsumer<T>void accept(T t)System::out::println\begin{array}{|c|c|c|}\hline \textbf{인터페이스}&\textbf{함수 시그니쳐}&\textbf{예}\\\hline \text{UnaryOperator<T>}&\text{T apply(T t)}&\text{String::toLowerCase}\\\hline \text{BinaryOperator<T>}&\text{T apply(T t1, T t2)}&\text{BigInteger::add}\\\hline \text{Predicate<T>}&\text{boolean test(T t)}&\text{Collection::isEmpty}\\\hline \text{Function<T, R>}&\text{R apply(T t)}&\text{Arrays::asList}\\\hline \text{Supplier<T>}&\text{T get()}&\text{Instant::now}\\\hline \text{Consumer<T>}&\text{void accept(T t)}&\text{System::out::println}\\\hline \end{array}
그렇기에 이처럼 제공되는 표준 함수형 인터페이스를 최대한 활용하도록 하며 해당 표준 함수형 인터페이스에 없는 구조의 경우에만 직접 구현하여 사용하도록 하자.
여기에 함수형 인터페이스를 직접 구현해야 하는 케이스가 하나 더 있는데, 대표적인 예로 Comparator<T>가 있다. 비교를 하기 위해 제공되는 인터페이스로 이처럼 자주 사용되면서 이름 자체로 용도를 명시하면서 유용한 디폴트 메서드까지 가지고 있는 인터페이스에 경우에는 직접 작성하는것이 좋다.

스프링 MVC 2편(강사 김영한)

초급자를 위해 스프링 프레임워크의 사용법이나 인터페이스를 소개해주고 사용법을 알려주는 강의로
스프링 빈 검증을 위한 Bean Validation과 로그인 상태를 유지하기위해 정보를 담는 방식과 이 방식을 세련되게 구현하는 방법에 대해 알아보았다.
검증 - Bean Validation
: Bean Validation 2.0(JSR-380)이라는 기술 표준으로 여러 검증 애노테이션과 인터페이스를 갖는 라이브러리. 이 라이브러리를 이용해 애노테이션 기반으로 각종 검증 구현 로직을 적용할 수 있다. 메세지 국제화까지 되어있어 편하게 사용가능하며 메세지 편집까지 가능하다.
필드 검증, 객체 검증, API Json 객체 검증까지 해보면서 직접 검증을 구현하는것에 비교해 얼마나 편리한지 소개해준다. 그리고 이러한 검증의 제약도 알려주며 기술을 제공한다고 그 기술에 의존하여 어떻게든 해당 기술로 해결하기보다는 직접 로직을 구현해야하는 경우도 있다는 경우도 설명을 해준다.
로그인 처리 - 쿠키, 세션
:로그인을 하는 것 자체는 문제가 되지 않는다. 그냥 컨트롤러를 만들고 전달받은 아이디와 암호를 비교해서 로그인여부만 반환해주면 된다. 하지만, 이 로그인 상태를 유지하는 것에서 고민이 발생한다. 모든 페이지에서 매번 로그인을 해 줄수는 없기에 최초 로그인시 이 상태를 적정 시점까지 유지를 해줘야 하는데, 이를 어떻게 해주고 로그인 정보를 어디에 담아야할지 대표적으로 쿠키 및 세션에 담는 방식에 대해 소개해준다.
초보자를 대상으로 하는 설명이기에 강의 내용은 usage base지만, 내가 초보자이기에 잘 맞는 강의였다.
로그인 처리 - 필터, 인터셉터
:로그인을 하고 로그인 상태를 관리하는 것 까진 좋지만, 매번 모든 컨트롤러 로직에 이 로그인 검증 로직을 작성하는것은 심각한 코드 중복을 야기한다. 그래서 이러한 공통관심사를 묶어서 처리하는 방식을 학습했는데,
서블릿에서 제공하는 필터와 스프링에서 제공하는 인터셉터를 알아보았다.
사실 나는 인터셉터만 사용을 했기에 필터를 잘 몰랐고, 그냥 필터가 있는데 나는 잘 몰라서 안쓰니까 부끄럽다 공부해서 써봐야지 했는데, 그냥 제공해주는 곳만 다르고 존재 의의는 유사하기에 차이점과 흐름 그리고 제한에 대해서만 학습하면 된다는 사실을 알게되었고 학습을 진행했다.
매번 구글링으로 usage정도만 살펴보고 구현을 했는데, 어떤 마커 인터페이스를 구현해야 하고, 어떻게 사용할지(등록할지) 공부하면서 무지성으로 사용만 하던 개발자는 벗어나는 과정인 것 같아 유익한 시간이였다.
사실 이 외의 공부는 따로 진행하지 않았다. 주말에 게임만 했던 이펙트가 너무 큰 것같다...

날벌레 소동

날이 더워지는데, 혼자 살고 있다보니 음식이 자주 남는다.
겨울에는 그냥 주방에 보관해도 문제가 없었는데, 지금은 그랬다간 난리가 난다. 최근 김밥 한조각이 남아있었는데 신경을 못쓰다가 날벌레가 나온 뒤로는 사라지질 않고 있다. 여기엔 내 과실이 큰데 음식들 처리를 계속 바로바로 못하다보니 날벌레가 계속 유지가 된다. 주말에 음식물 쓰레기와 일반쓰레기를 다 버리고 왔고, 최대한 잡아봤지만 계속 어디선가 나오고있다.. 그래서 월요일(오늘) 냉장고 밖에 존재하는 모든 음식이나 쓰레기를 다 정리하고 대청소를 진행해야 할 것 같다.
그리고 날벌레 잡는 스프레이 및 트랩을 주문해서 설치하고 효과를 기대해봐야겠다.

괜찮지 않은데 괜찮은 척했다.

내가 요즘 자기전에 종종 보는 유튜버이다. 평소엔 공부용 전공책을 보는걸 제외하면 게임을 하거나 와이프와 여가를 보내다보니 이런 교양책들을 읽지를 못하고 있기에 오디오 북이라도 보고 있는데, 목소리도 좋고 딕션도 좋아 즐겨 보고 있다. 많은 책들이 좋은 내용들을 다루고 있지만, 특히 어제 들은 이 책의 내용은 내게 많은 공감을 일으켰다. 인트로에 나오는 내용은 다음과 같다.
주위를 실망시키지 않기 위해 괜찮은 척했습니다. 약한 모습을 보이지 싫어 괜찮은 척했습니다. 혼자가 될까 봐 괜찮은 척했습니다. 슬픔을 받아들이기 싫어 괜찮은 척했습니다. 넘어지면 다시 일어나지 못 할 것 같아 괜찮은 척했습니다. 마음을 기댈 곳 없는 사람은 자주 괜찮은 척합니다. 자신이 넘어졌을 때 일으켜 줄 사람이 없다고 생각하기에 아파도 아프지 않은 척 슬퍼도 슬프지 않은 척 힘들어도 힘들지 않은 척 괜찮은 척합니다. 그래서 스스로가 스스로를 가장 힘들 게 할 때도 있습니다. 생각을 잘 쉬지 못하며 다른 사람들에게 부족한 모습을 보이지 않으려고 늘 노력합니다. 그래서 겉보기에는 힘들지 않아 보이지만 무엇이든 잘 해내는 것처럼 괜찮은 척 보이지만 마음은 괜찮지 않을 때가 많습니다. ... ...
Plain Text
복사
다른사람은 그렇지 않겠냐마는 나 역시 정말 많이 괜찮은 척을 했었다.
집이 평범보다 못했던 그렇기에 초등학생때는 기초수급자로 무료급식 선정이 되었을때도, 그 이후에도 먹고싶은게 있어도, 가지고 싶은게 있어도 떼를 쓰면 부모님이 힘들어 하실까봐 그리고 실망할까봐 없어도 괜찮은척 안먹어도 괜찮은척, 없어도 괜찮은 척 하곤 했었다.
나도 한없이 징징거리고 고민도 얘기하고 힘든얘기도 하고싶지만, 들어줄 사람이 마땅치 않다고 생각해서 힘들지 않은척 괜찮은 척을 하고는 했다.
그러다보니 내용이 많이 공감이 간다.
나 뿐아니라 많은 사람들이 괜찮은척 하고 살고 있기에 더욱 더 나만 힘든게 아닌데 하며 괜찮은 척을 한다.
번아웃이 왔을때도 번아웃이 와서 무기력하다는 것 자체에 스트레스를 받고는 했는데 이 책에서는 무기력해도 괜찮다고는 한다.
물론 책에서 계속 괜찮다고 하지만, 한편으로는 이런생각도 든다. 내 나이에 이미 충분히 무력했었는데, 더 무력하면 너무 늦지 않을까? 지금 무력하다간 앞으로의 내가 더 힘들어지지 않을까 생각을 한다.
그래도 책에선 너무 걱정하지 말고 너무 염려하지말고 오늘은 무기력해도 괜찮다고한다.
그리고 정말 공감되는 내용중 하나는 다음 구절인데, 알지만 참 쉽지 않다.
네가 너를 너무 나무라면 목표까지 가기도 전에 마음이 힘들어 포기하게 될지도 몰라.
Plain Text
복사
오늘 내가 3시간을 공부했지만, 단톡방이나 사람들 사이에서 내가 모르는 키워드 더 많이 공부한사람, 더 좋은 곳에 취업한사람을 보면 나는 나를 계속 나무라게 된다. 오늘 3시간을 공부했어도 부족하다고 너는 너무 나태하다고 채찍질을 한다. 그래서 다음날 4시간을 공부하면 5시간을 한 사람을 보며 또 채찍질을 한다. 그러다보니 공부에서 성취감보다는 좌절감이 먼저들고 나보다 못하는 사람은 나처럼 못난사람보다도 못하니까 얼마나 못난걸까 하면서 저열한 우월감을 가지기도 한다.
나의 속도를 찾으라하는데 어떻게 찾아야 할까?