응집도와 결합도
·
TIL
토스 slash 24를 시작으로 타임라인을 따라 slash 21까지 보게 되며인상 깊었던 세션이 있었습니다. 진유림 님이 발표하신 토스ㅣSLASH 21 - 실무에서 바로 쓰는 Frontend Clean Code에서응집도와 결합도, 단일 책임 원칙을 기준으로 클린 코드를 작성하는 방법이었는데요. 세션에서 언급한 내용을 기반으로 실무에 작성했던 저의 코드들을 돌아보며난잡하기 짝이 없다는 것을 깨닫게 되었습니다.실무에서 언제든지 적용할 수 있을 때까지 저의 기록을 보며 공부하기 위해 포스팅하게 되었습니다.응집도는 뭐고 결합도는 뭐야?📒  응집도 (Cohesion)응집도는 특정 모듈(예: 함수나 클래스)이 얼마나 잘 관련된 기능을 가지고 있는지를 나타내는 척도입니다.쉽게 말해, 하나의 모듈이 특정한 작업이나 ..
Compound pattern을 적용해 공통 모달을 만들어보자
·
Design Pattern
공통 모달인데.. 이제 재활용이 안 되는..새로운 프로젝트를 진행하며 공통 모달 제작이 필요했습니다.MVP 단계이기도 했고, 그에 따라 수시로 내용이 변경되어모달에 사용되는 데이터를 인자로 전달받게만 처리하면1차적인 공용 컴포넌트를 완성할 수 있을 것으로 전망했지만, 이는 착각이었습니다. 수시로 변경되는 것은 내용뿐이 아닌 디자인도 포함되었으니까요.1차로 작성한 모달 컴포넌트만약 공용 모달 컴포넌트를 사용하는 모든 곳에서 디자인과 기능이 동일하다면prop을 전달받아 관리하는 공용 컴포넌트로 사용해도 문제가 없습니다. 하지만 특정 페이지들에서만 색상을 다르게 한다던지,모바일 환경에서의 레이아웃 변경 등이 필요하다면다시 컴포넌트를 만들어야 하므로, 상당히 불편함을 야기합니다. 즉, 추상화가 되어있지 않다고 ..
reset.css 설정으로 react-markdown을 통한 마크다운 적용이 안될 때
·
TIL
왜 react-markdown 적용이 안되는 걸까사내에서 신규 프로젝트 진행 중, reset.css로 인해HTML 요소의 기본 스타일이 제거되어 react-markdown을 통한 마크다운이일반 텍스트처럼 보이는 문제가 있었습니다.문제 해결markdown 컴포넌트의 상위 요소에 개별 스타일을 설정해 주는 것으로 해결 가능합니다.1. markdown 상위 요소를 생성한다. const Markdown = () => { ... return ( ... ) : ( {children} ); }, }} ..
실패한 2년차 경력직 인터뷰 경험
·
TIL
오늘은 조금 특별한 포스팅을 해볼까 합니다. 2년차 개발자로서 경험한 경력직 인터뷰의 매 순간들을 정리해보고 싶었거든요.이직 성공 관련 포스팅이 아니지만.. 이직을 고민하는 과정에서 느꼈던감정들과 준비 과정을 돌아보며 정리해보았습니다. 인터뷰 질문 유형기술 인터뷰기술인터뷰에서는 주로 ‘경력 설명’, ‘사용한 기술’, ‘해결했던 문제와 그 과정’에 대한질문을 많이 받았는데요,  주로 문제 해결 과정에서 사용된 기술 개념과 cs 질문 비중이 높았습니다. 예시로 state로 관리하던 Form을 react-hook-form으로 변경해 관리한 것을 시작으로렌더링과 관련된 개념과 리액트를 사용하는 이유와 cs 질문까지.심화 질문이 들어왔던 것이 생각나네요. 이외에도 면접관과의 대화에서 제가 원하는 방향으로이야기를 ..
git의 폴더/파일명 대소문자 이슈
·
Error Handling
이슈 발생경로와 원인사내에서 새로운 서비스를 개발하던 도중, 파스칼 케이스로 생성한 폴더명을스네이크 케이스로 변경하자는 동료분 의견이 있어 스네이크 케이스로 폴더명을 변경 후깃허브에 push 했지만 여전히 파스칼 케이스가 적용되어 있었는데요. 알고보니 git은 파일명 또는 폴더명의 대소문자를 구분하지 못하는 문제가 있었습니다.해결 방안git config core.ignorecase falsegit rm -r --cached .git add . git config core.ignorecase false을 터미널에 입력해주면 이후엔  대소문자를 인식하게 됩니다. 추가로 git 저장소에 캐싱된파일이 남아 있다면 터미널에 캐싱 관련 메시지가 보여지게 되는데캐시 관련 명령어로 캐시를 삭제해주면 해결됩니다.