바닐라 부트캠프

[WIL] 바닐라코딩 부트캠프 12주차 후기 - 긍정의 기운으로!

feel2 2025. 5. 3. 14:14
반응형

백엔드 3주차가 지나간다. express.js에 어느정도 적응이 되어간다. 이번주부터는 mvc 패턴을 도입하여 3 레이어드 아키텍처를 적용시켜 API를 구성하였다.

 

여기 오기 전에 나는 백엔드 개발을 많이 해봤기 때문에, 생각한 일정보다 더 빨리 과제를 마쳤다. 사용하는 기술 스택이 다른거지, 원리는 거의 비슷하기 때문에 조금만 사용법을 익힌다면 그전에 사용하던 기술스택과 크게 다르지 않다고 느껴졌다.

 

어느 하나를 정통한다면 그와 비슷한건 금방 익히는게 맞는 것 같다. 결국 중요한건 이 코드를 왜 이렇게 작성했는지에 대한 나의 선택사항만 남을뿐.

 

다시 시작한 러닝!

 

이번주부터 달라진게 있다면 아침에 러닝을 시작했다는 것이다. ‘건강한 몸에 건강한 정신이 깃든다.’를 너무 잘 알고 있기에 더는 미룰수가 없었다. 마침 근처에 한강이 있기에 러닝에 최고의 환경이다. 예전에도 러닝을 자주 뛰었기에 첫날에 5km를 달렸다. 다음날 발뒤꿈치를 땅에 닿을때마다 짜릿한 고통이 찾아왔다. 현재 내 나이를 생각하지 않고 갑자기 달려서 그런것 같다. 시작한지 하루만에 좌절에 빠졌다. 그렇다고 포기할 나인가!

 

수요일, 나는 다시 마음먹고 아침에 5km를 달렸다. 다음날부터는 더 큰 고통이 찾아왔다. 세월이 야속하다. 5년전만해도 아침에 10km씩 달리고 직장에 출근해도 괜찮았는데… 너무 급하게 생각하지 말자. 천천히 내 몸이 다시 적응할때까지 기다려줄 필요도 있다.

 

예전에 나는 왜그렇게 달렸을까? 러닝의 제일 강점은 아무 생각이 안든다는 것이다. 이상하게 들릴지도 모르지만, 우리는 어쩌면 평소에 너무 많은 생각에 얽매여있지 않은가? 그럴때 러닝은 정말 최고의 해소제다. 뛰고 나면 머리가 맑아진다. 복잡하게 나를 괴롭히던 생각들도, 러닝을 뛰고 나면 땀방울에 섞여 같이 흘러내린다.

 

이렇게 하는게 맞을까요?

 

과제를 하다보면 같은 기수의 동료들이 나에게 이것저것 물어볼때가 있다.

대부분 이런 질문들이다.

  • ‘이렇게 하는게 맞을까요?’
  • ‘혹시 어떻게 생각하세요?’

 

그럼 나는 내 생각을 말해준다. 그런데 나도 내가 100퍼센트 확신을 가지는 부분이 있고, 조금 확신이 모자란 부분도 있다. 이런 경우 나는 100퍼센트 확실하다고 생각하는 부분인 확실하게 얘기하고, 조금이라도 확신이 없다면 잘 모른다고 얘기를 한다.

 

여기서 한가지 나의 문제점을 발견했다. 내가 100퍼센트 확신을 가지는 부분에 대해서는 그 기준에 어긋나는 것 같으면 그 코드가 이상하고, 잘못됐을 것 같다고 얘기하는 것이다.

 

코드 세상에 정답은 없다. 각자의 생각이 다를뿐이다. 그런데 이렇게 내 의견을 강조하는건 안 좋은 것 같다. 그 친구들에게도 생각의 여백을 남겨줘야 한다.

 

물론 내가 약 5년 동안 현업에서 일을 했기 때문에 그만큼의 경험치는 무시하지 못할 것이다. 그래도 그걸 정답처럼 말하는 건 항상 조심해야 한다.

 

앞으로는 이부분을 좀 더 신경써서 대답을 해야할 것 같다!

 

부정보단 긍정이 낫지

 

코드를 작성하다 부정의 결과를 리턴해야 하는 경우가 생겼다. 예를 들어 falsey를 리턴해야 어느 로직으로 넘어가는 경우다. 그래서 나는 결과에 !를 붙여서 내가 원하는 결과에 부정이면 그 로직을 실행하게 코드를 작성했다.

 

내가 걸리는 부분은 ‘처음 이 코드를 보는 사람들이 쉽게 이해가 가능할까?’였다. 부정은 한번 더 생각해보게 되는 걸림돌이다. 그래서 이 부분을 어떻게 하면 좋을지 멘토님께 질문을 드려보았다. 멘토님도 내 로직을 보더니 한번 그 값이 부정이 될 상황이 뭔지를 생각해보면 좋지 않겠냐고 했다.

 

결국 그 값이 undefined 이거나 null일 경우 falsey한 값이 된다.

 

  • 변경 전
function logic1() {
	const result = ...;
	return !result;
}

// result가 **falsey일때 이 로직을 탄다.**
function logic2() {
	...
}

 

  • 변경 후
function logic1() {
	const result = ...;
	return result == null;
}

// result가 **falsey일때 이 로직을 탄다.**
function logic2() {
	...
}

 

어떤 코드가 더 이해하기 쉬운가? 변경 된 코드를 생각해보면, result라는 결과가 null이 아닐 경우 logic2를 간다는게 좀 더 명확해진다.

 

저렇게 결과에 !를 붙이는 걸 bang operator 라고 한다. 많은 사람들이 bang operator를 지양하라고 한다. 왜냐하면 부정이라는 것 자체가 한번 더 생각을 하게 만드는 요소이기 때문이다.

 

세상도 마찬가지다. 부정적으로 생각하면 더 그 생각에 빠져드는 것 같다. 긍정적으로 바라보는 시선을 일상뿐만 아니라 코드 세계까지 확장시키자.

 

한줄 후기

 

긍정적으로 살자!

 

바닐라코딩: https://www.vanillacoding.co/

반응형