본문 바로가기

전체 글11

코드 리뷰 정리 이제 개발자로 밥 벌어먹은지 1년이 다 돼간다. 아직 회사 master branch에 직접 수정할 수 있는 권한은 없기 때문에 사소한 수정이라도 PR을 올려야한다. 그 과정에서 자연스럽게 코드리뷰를 받게 되는데 그 내용들을 정리하려고 한다.이 글을 보는분들은 나와같은 실수를 하지 않았으면 한다. 물론 이 글이 무조건 정답이 아니기 때문에 알아서 걸러서 참고 된다. 타입추론이 되는 변수는 타입을 작성하지 말자let isLoading: boolean = false; TS를 사용하는 입장에서 TS의 강력한 기능중에 자동으로 TS에서 타입추론을 해준다는 점이다. 변수의 경우 초기값을 할당하는 경우 타입추론을 통해 타입이 지정되기 때문에 굳이 작성할 필요는 없다.  이 경우 팀바팀이라고 생각한다. 타입을 작성하던.. 2024. 8. 17.
변수, 함수, 타입 이름 작성에 대한 고민 사수에게 받은 피드백중 많은 고민이 필요하고 중요한 부분이 바로 이름 짓는거라고 생각합니다. 이 글은 좋은 변수를 짓는것에 대한 피드백과 제 생각을 정리한 글입니다. 변수의 이름 짓기란 매우 중요한건 모두 알고있을것이다. 하지만 시간이 없어 빠르게 코드를 작성해야 하는 상황이나 내가 적절하다고 생각한 변수명이 상대방이 느꼈을때는 파악하기 어려운 변수일 수도 있다.  위와 같은 문제 해결을 위해서는 세 가지 규칙을 기반으로 작성하는게 중요하다. 변수명은 제 3자가 봤을때 코드의 문맥을 파악하지 않아도 변수명만 보고도 어떤 역할을 하는 변수인지 파악이 가능한지를 고민하고 작성하는게 중요하다.문법적으로 오류가 없는지 파악하고 작성해야한다. 함수가 정확히 어떤 동작을 하는지 파악할 수 있어야한다. 첫 번째는 팀.. 2024. 8. 16.
다국어 서비스 적용 회고 이 글은 서비스에 다국어를 적용하는 과정에서 들었던 고민을 정리한 글입니다. 제가 정답은 아니지만 다국어를 처음 적용하려고 하거나 적용중인분한테 도움이 될꺼라고 생각합니다. 프로젝트 시작전 고민 다국어 서비스를 구현하기 위해서는 두가지 방법에 대한 고민이 있었습니다. 첫 번째는 라이브러리 없이 사용하는 경우입니다. 라이브러리 없이 전역 상태에 locale값을 선언해 이 상태값을 기준으로 조건문으로 영어와 한국어를 넣는 방법에 대해서 처음에 고민을 해봤습니다. 하지만 이 방법은 컴포넌트에 JSX가 길어져 가독성에 좋지 않겠다는 생각이 들었습니다. 그리고 영어 한국어 이외에 추가적인 언어를 지원하게 되는 경우 조건문이 복잡해지고 코드가 더러워져 가독성에도 좋지 않고 확장성에도 좋지 않다는 생각이 들었습니다... 2024. 1. 16.
크로스 브라우징 이슈는 어떻게 대응할 수 있을까? 이 글은 현업에서 개발을 하다 생긴 크로스 브라우징 이슈에 대해서 공유하고 어떻게 해결하는게 좋을지를 고민한 글입니다. 문제 상황 위에 화면은 모두 1920x1080 해상도의 모니터이고 모두 100% 상태입니다. 그리고 px로 정적으로 단위를 기입해서 크기를 지정했습니다. 하지만 실제로 화면상에는 두 화면이 다르게 보입니다. 왜 그런걸까요? 결론부터 얘기하면 디스플레이의 차이입니다. 위에 맥 OS의 경우 운영체제가 맥이라서가 아닌 레티나 디스플레이기 때문에 같은 크기의 px이라도 다르게 렌더링을 시켜줍니다. 디자이너분이 레티나 디스플레이에서 1080 환경을 기준으로 디자인을 주게 되면 일반 디스플레이에서는 상태표시줄 때문에 실제 1080 모니터라도 실제로는 900대 크기의 높이를 가진 디스플레이처럼 렌더.. 2024. 1. 11.
순수함수와 부수효과를 나누어 개발하는게 좋을까? 이 글은 프리온보딩 아키텍쳐 강의를 듣고 현업에서 적용해보면서 느꼈던 고민들을 정리한 글 입니다. 글을 시작하기 앞서 순수함수와 부수효과가 있는 함수란 무엇일까? 순수함수 순수함수는 외부의 상태를 변경하지 않으면서 동일한 인자에 대해 항상 똑같은 값을 리턴하는 함수입니다. 라고 하는데 리액트를 조금 해보신 분이라면 저희가 사용하는 상태변경 함수를 호출하지 않는 함수라는 의미로 이해가 될꺼고 뒤에 나오는 동일한 인자에 대해 항상 똑같은 값을 리턴한다는 말이 조금 헤깔릴 수도 있을꺼 같습니다. function add(a:number, b:number):number { return a + b; } 코드를 보면 이해할 수 있는데 인자에 어떤값이 들어가던지 항상 동일하게 두 값을 더한 값이 나오는걸 의미한다고 볼.. 2023. 12. 16.
[프로그래머스] LV1. 햄버거 만들기 [level 1] 햄버거 만들기 - 133502 문제 설명햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 일은 없으며, 재료의 높이는 무시하여 재료가 높이 쌓여서 일이 힘들어지는 경우는 없습니다.예를 들어, 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기.. 2023. 12. 4.