회사에서 작업하던 중에 팝업을 띄워야 할 일이 있었는데 나는 이 회사에 입사 후 백엔드 인원이 충분했던 적이 없다보니, 프론트에서 알아서 처리할 수 있는 부분은 최대한 프론트에서 처리하는 것이 당연하다고 생각하고 작업을 많이 했었다. 그래서 저번에 팝업 했던 거랑 같이 이번에 하는 것도 팝업 관련한 정보는 하드코딩으로 프론트 쪽에 넣어놓고 시간처리 같은 것만 하면 되겠다, 고 생각했었다. 근데 내가 이렇게 생각한 것과는 별개로 앱 파트 분들은(한 분은 시니어고 한 분은 경력 5년 정도 되심) 백엔드 쪽에서 받아야 된다고 생각하시더라고. 경력 더 많으신 분들이 저렇게 말하시는 거 보면 데이터 일관성 같은 쪽에서만이 아니라 무언가 다른 이유가 있는 건가, 싶어서 여쭤봤다.
그랬더니 앱은 언제나 리버스 엔지니어링 같은 것도 생각하면서 만들어야 돼서 그렇다고 했다. '리버스 엔지니어링' 이라는 단어를 처음 들어봐서 설명을 좀 부탁드려서 들었다.
리버스(reverse)라는 말은 반대, 역의 뜻을 가지고 있는데, 리버스 엔지니어링을 역공학이라고 쓰기도 합니다. 리버스 엔지니어링은 목표가 되는 프로그램이나 프로토콜을 분석하여 똑같은 동작을 만들어 내는 것을 말한다고 하는데 해커들이 가장 기본적인 방식이라고 한다. 그래서 프론트 쪽에는 중요한 정보를 넣지 않고(물론 팝업이 중요한 정보는 아니기는 해서 이번 것은 괜찮을 것 같다고는 하심) 최대한 백에서 받아오는 식으로 작업을 하는 것이 권장된다고 한다.