인생살이/일과 삶

FW 개발자 회고: 7년간의 성장과 깨달음

웅디캉 2025. 4. 27. 18:30

FW 개발에 더 이상 흥미를 느끼지 못해서 서비스 개발로 전직했지만, FW 개발자로 일하면서 배운 것은 정말 많았다.

전직을 결심하고 준비하는 과정에서 좋았던 기억까지 부정하며 FW 개발을 너무 미워하기만 했던 것 같다. (마치 전 남자친구를 추억할 때처럼... ㅋ_ㅋ)

그래서 내 기억이 휘발되기 전에, FW 개발자로 일하며 얻게 된 것에 대해 한번 정리해 보려고 한다.

 

나는 어쩌다 FW 개발자가 되었나?

여느 K-대학생이 그러하듯 대기업에 들어가면 성공하는 줄 알았다. 나의 취향과는 상관없이 말이다.

어찌어찌 운과 노력이 잘 맞아떨어져 현재 회사 취업에 성공했고, 그 당시에는 날아갈 듯 좋았다. 취업 후 팀을 정하게 될 순간에 그래도! 그나마 내가 좋아하는 일을 해보고 싶었으나, '잘 나가는 팀'에 가야 고생을 덜 한다는 선배들의 말에 설득되어 SSD FW 개발팀을 선택했다.

 

그래도 그 당시엔 내가 회사의 제품에 코드 한 줄을 넣을 수 있다는 것만으로도 참 벅차오르고 좋았다. 자부심도 많이 느꼈다. 비록 기술 자체에 대한 흥미는 없었지만 새로운 것을 배우고 성장하는 과정, 거기서 오는 성취감이 컸다. 그렇게 참고 울고 웃으며 7년을 지내다 보니 어엿한(?) SSD FTL 개발자가 되어있었다.

그간 나는 이런걸 만들었다. 약간 뿌듯

더보기

 

SSD, FW, FTL은 무엇이고, 데이터 센터/엔터프라이즈 SSD 산업은 어떤 특징을 가질까?

글을 시작하기에 앞서, SSD, 펌웨어(FW), FTL에 대한 기본적인 정의와, 내가 주로 개발했던 데이터 센터/엔터프라이즈 향 SSD 산업의 특징을 설명하고자 한다. 내가 어떤 제품을 만들었는지 설명하고 나면 내 심정이 더 잘 이해되지 않을까 해서 말이다.

  • SSD (Solid State Drive):
    SSD는 데이터를 저장하는 장치로, 하드 디스크 드라이브(HDD)와 달리 기계적인 움직이는 부품이 없는 Solid 상태의 저장 장치다. SSD는 메모리 반도체 중 하나인 플래시 메모리를 사용하여 데이터를 저장한다.
    플래시 메모리는 전원 공급이 되지 않는 상황에서도 데이터를 저장할 수 있다는 특성이 있다. SSD의 종류에는 일반 컴퓨터에 사용되는 Client SSD, 클라우드 또는 기업 내부 데이터 저장용으로 사용하는 Datacenter/Enterprise SSD, 휴대폰이나 카메라에 들어가는 Mobile SSD (UFS) 등이 있다.
    나는 Datacenter/Enterprise SSD에 들어가는 FW를 개발했다.
    내가 주로 개발했던 데이터 센터, 엔터프라이즈 SSD는 일반 소비자용 SSD와는 조금 다르다. 가장 중요한 차이점은 안정성과 수명이다. 데이터 센터는 24시간 365일 멈추지 않고 방대한 양의 데이터를 처리해야 하기 때문에, SSD가 고장 나면 큰 문제가 발생할 수 있다.
    그래서 우리는 높은 안정성과 긴 수명을 보장하기 위한 노력을 많이 쏟았다. 또, 데이터 센터에서는 SSD의 성능도 매우 중요한 요소 중 하나이다. 빠른 데이터 처리 속도는 곧 서비스 응답 시간 단축으로 이어지기 때문에, SSD의 읽기/쓰기 속도를 최적화하기 위해 많은 노력을 기울였다.

  • 펌웨어 (Firmware):
    펌웨어는 SSD를 "작동"시키는 소프트웨어라고 생각하면 된다. 펌웨어는 SSD 안에 내장된 작은 컴퓨터(컨트롤러)에서 실행된다. 하드웨어를 제어하고, 데이터 입출력을 관리하며 Flash Memory가 가지는 여러 제약 사항을 해결하기 위한 기능을 한다.

  • FTL (Flash Translation Layer):
    FTL은 SSD 펌웨어의 핵심 구성 요소 중 하나로, 파일 시스템이 데이터를 어디에 저장해야 하는지 알려주면, 실제로 데이터를 낸드 플래시 메모리라는 저장 공간에 어떻게 쓸지 결정하는 역할을 한다.
    쉽게 말해, 데이터를 효율적으로 저장하고 관리하는 '두뇌' 역할을 한다고 보면 된다. NAND 플래시 메모리는 데이터를 쓰는 단위보다 지우는 단위가 더 크다는 치명적인 특징을 가지고 있다. 이걸 비유하자면, 연필로 막 쓴 글씨를 지울 때 틀린 글자만 지우는 게 아니라 문장 전체를 지우고 다시 써야 하는 것과 같다.
    이 말만 들으면 "그래서 어쩌라고?" 싶겠지만, 이런 하드웨어 제약을 보완하면서 NAND를 더 효율적이고 오래 사용하기 위해 아주아주 방대하고 복잡한 방법들이 필요하다. FTL 개발자들은 바로 그런 방법들을 연구하고 개발하는 일을 한다. 하드웨어의 제약을 소프트웨어로 해결하는 과정인 셈이다. FTL의 주요 역할은 다음과 같다.
    • 주소 매핑 (Address Mapping): 효율성의 핵심
    • 웨어 레벨링 (Wear Leveling): 수명 연장의 기술
    • 가비지 컬렉션 (Garbage Collection): 효율적인 청소부

나는 주로 변화하는 NAND 특성에 맞춰 FW를 뜯어고치고 디버깅하는 수리공(?)🧑‍🔧  역할을 했다.

앞서 말했듯 데이터 안정성이 중요한 요소 중 하나라 테스팅과 품질을 향상시키는 데 많은 시간을 쏟았다. JTAG 디버거와 자리에 커다란 Test PC를 하나 두고, 서버실을 전전하며 FW의 잘못된 부분을 찾아내고 고쳤다. 글로 써놓고 보니 참 멋있는 일 같기도 한데... '나'의 기호와 특성에는 잘 맞지 않았다.

 

 

7년간 무엇을 얻었나?

돌아보면 7년 동안 FW 개발자로 일하면서 정말 다양한 것을 얻었다. 개발자로서뿐 아니라, 한 사람으로서 성장할 수 있었던 시간이었다.

나는 이런 것들을 얻었다.

  • 논리적으로 사고하는 방법
  • FW 개발 능력
  • 반도체 산업에 대한 폭넓은 이해
  • 협업 능력 및 제품 개발 프로세스 경험
  • 어려움을 참아내고 견디는 끈기
  • 일에 몰입하는 경험과 몰입하는 방법
  • 효과적인 소통 능력
  • 나를 지켜내며 일하는 방법
  • 업무를 체계적으로 기록하는 방법
  • 세상에 불가능은 없으며, 복잡하고 방대한 일만 있을 뿐이라는 긍정적인 마음가짐
  • (씁쓸하지만) 거북목과 피하지방
  • 돈과 (늘어난) 주름살
  • 필요한 도움을 빠르게 요청하는 능력
  • 좋은 관계를 맺고 유지하는 것의 중요성

Memory Type 별 접근속도, 자주 쓰이는 코드, 구조적 결함을 찾아 성능을 개선시키는 노력!

동시성 / 병렬성을 높이는 노력!

바틀넥 찾아서 해결!

리눅스 활용 검증, 개발자 자주 검증

Bit 단위로 메모리 쪼개 쓰는 능력! 한정된 자원으로 최대 효율을 높이는 방법!

 

 

나에 대해 알게 된 것들

  • 성취감을 매우 중요하게 생각한다.
  • 시스템의 구조적인 결함을 찾아내고 해결하는 과정에 몰두하는 것을 즐긴다.
  • 업무 과다로 야근하는 것보다, 해야 할 일을 끝내지 못하고 퇴근할 때 더 괴롭다.

가슴 뛰었던 순간들

  • 해결하기 어려웠던 버그를 마침내 해결했을 때의 짜릿함
  • 월급날과 보너스를 받았을 때의 기쁨 (역시 최고다)
  • 한가한 시간에 회사에서 딴짓(?)을 하며 소소한 즐거움을 누릴 때
  • 내가 꼼꼼하게 기록해 둔 업무 자료들을 다시 꺼내 보며 뿌듯함을 느낄 때
  • 동료나 상사로부터 칭찬을 받았을 때 (나는야 인정에 목마른 인간...)
  • 팀 워크숍을 성공적으로 기획하고, 동료들이 즐거워하는 모습을 보았을 때
  • 동료들과 소소한 농담을 주고받으며 웃었던 모든 순간들

맞지 않다고 느낀 순간들

  • 사람보다 일이 우선시되고, 서로를 헐뜯는 상황이 벌어질 때
  • 제품의 품질보다 개발 기간이나 임원의 성과에만 초점이 맞춰져 있다고 느낄 때
  • 실질적인 기여보다는 보여주기 식의 업무를 해야 할 때
  • 내가 만든 결과물이 어떻게 기여하는지 피부로 와닿지 않을 때
  • 동료들과 깊이 연결되지 못하고 겉도는 느낌이 들 때
  • 자율성이 부족하고, 주도적으로 일하기 어려운 조직 문화

 

돌아보면 FW 개발자로서 7년은 내 인생에서 잊을 수 없는 중요한 시간이었다. 힘든 순간도 있었지만, 그만큼 값진 경험과 성장을 얻을 수 있었다.

이 글이 펌웨어 개발자를 꿈꾸는 누군가에게 조금이나마 도움이 되기를 바라며, 동시에 지난 시간을 추억하는 나에게 보내는 작은 위로가 되기를 바란다.