Day2🏷️ 오늘 읽은 범위: 시작 ~ 1장, 깨끗한 코드책에서 기억하고 싶은 내용을 써보세요.르블랑의 법칙: 나중은 결코 오지 않는다.보이스카우트 규칙: 캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라.한꺼번에 많은 시간과 노력을 투자해 코드를 정리할 필요가 없다. 오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요.제가 짜놓은 나쁜코드 때문에 퇴사한 이후 후임자에게 굉장히 미안해했던 기억이 있습니다. 결국 그 후임자는 코드를 다 갈아엎었다고 하더라구요. 개발할 당시에는 너무 시달리기도 했고 개발일정이 빠듯해 일단 동작은 되니까 다음에 리팩토링하자는 생각으로 넘어간적이 많았는데요. 그러다보니 나중에는 어마어마한 스파게티 소스가 되어버려 어디서부터 손을 대야할지 막막했습니다. 제가 르블랑의 법칙..
전체 글
저의 성장일기를 시작해보려고 합니다. 저는 5년차 개발자에요. 왜 이제야 성장일기를 시작하는지 의아해 하실 거같아요.1년 8개월은 일본에서 개발자라고 할 수없는 일을 했었지만 IT업계에 종사했다는 이유로 경력을 인정받았어요.그리고 2년 6개월을 프론트앤드 개발자로 중소기업에서 일했어요. 그 회사는 소스코드의 질보다 기능개발이 급급한 회사였기 때문에 어떻게 해야 더 좋은 코드일지 고민해본적이 없었던 거 같아요. 그냥 잘 돌아가면 거기서 끝이었어요. 그런데 이번에 이직한 회사에서는 코드의 질을 굉장히 중요하게 생각해요. 제 사수가 저의 코딩스타일을 별로 안좋아합니다. 처음에는 이해가 안되서 많이 부딪혔어요. 잘 돌아가는데 대체 뭐가 문제라는건지 모르겠더라고요.과장님은 그렇게 개발하면 나중에 알아보기 어렵다...
WebSocket은 무엇인가클라이언트와 서버 간의지속적인 전이중 연결을 제공하는 통신 프로토콜입니다. HTTP 프로토콜과 달리, WebSocket은 한번 연결이 설정되면 양방향으로 데이터를 자유롭게 교환할 수 있습니다. 이는 실시간 업데이트와 즉각적인 데이터 전송을 필요로 하는 애츨리케이션에 이상적입니다.WebSocket의 원리OSI 7계층과 WebSocketOSI 모델은 네트워크 통신을 7계층으로 나눈 모델입니다. WebSocket은 주로 전송계층(TCP)과 응용계층(HTTP/HTTPS)에서 작동합니다. 초기 연결설정은 HTTP/HTTPS 프로토콜을 통해 이루어지고, 연결이 설정되면 전송계층의 TCP를 통해 양방향 통신이 이루어집니다. WebSocket의 동작 원리핸드쉐이크: 클라이언트는 HTTP 요청..
ChatGPT 유료 결제자가 아니라면 아래의 링크를 통해 무료로 이용가능하다고 하니, 꼭 사용해보세요.https://www.googleadservices.com/pagead/aclk?sa=L&ai=DChcSEwjci6j7iMuHAxV0J3sHHRC6OyMYABAAGgJ0bQ&co=1&ase=2&gclid=CjwKCAjw2Je1BhAgEiwAp3KY7-IC5wEq2X5es5xA4FTZKCWJaPloFG14TopyilaTt8b7ERE4Wdxd0hoC_tMQAvD_BwE&ohost=www.google.com&cid=CAESVeD2_rd7aqTxwx75pxKtVK3FiQxHj4CxF_mhPy2KZCur1yQP8fSPom7I3J2XMrjAtPJEqqNwZ7-izusY6LjR7FDBsTKnV5Hk9Ah8epH9et..
rebase rebase는 merge와 함께 다른 브랜치로 합칠 때 사용됩니다. rebase는 말 그대로 base를 변경하는 것입니다. main 브랜치인 C1에서 bugFix 브랜치를 분기했습니다. bugFix의 base는 C1이 됩니다. base란 현재 브랜치(bugFix)가 다른 브랜치 위로 이동되기 전의 공통 조상을 의미합니다. 즉, bugFix와 main의 공통 조상은 C1이 되는겁니다. 이제 `git rebase main`을 질의하면, bugFix의 커밋들을 main의 마지막 커밋으로부터 재적용하는 작업입니다. 이 과정에서 base가 변경됩니다. bugFix의 base가 C1에서 C7로 변경됩니다. 반대로 이번에는 main 브랜치에서 `git rebase bugFix`를 해보겠습니다. m..
1. 소프트웨어 공학 (1) 재공학과 재사용(Software Reuse) ①②③④⑤⑥⑦⑧ ① 소프트웨어 재공학(Software Reengineering)의 개념 및 목표 소프트웨어 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미한다. 재구조화는 재공학의 한 유형으로 사용자의 요구사항이나 기술적 설계의 변경 없이 프로그램을 개선하는 것이다. 소프트웨어 재공학 관점에서 가장 연관 깊은 유지보수 유형은 예방 유지보수(Preventive Maintenance)이다. 재사용을 수월하게 하며 소프트웨어의 수명을 연장하는 것을 목표로 한다. ② 재공학의 장점 개발 시간과 비용을 감소시킨다. 프로젝트 실패의 위험을 감소시킨다. 소프트웨어의 품질 및 생산성을 향상시킨다. 구축 방법에 대한 개발 ..
1. 소프트웨어 (1) 소프트웨어의 개념 및 특징 ① 소프트웨어 개념 컴퓨터를 동작시키고 어떤 일의 처리 순서와 방법을 지시하는 명령어의 집합인 프로그램과 프로그램의 수행에 필요한 절차, 규칙, 관련 문서 등을총칭한다. 프로그램(Program): 컴퓨터를 통해 일련의 작업을 처리하기 위한 명령어와 관련된 데이터의 집합을 의미한다. 자료 구조(Data Structure): 컴퓨터 기억 장치 내에 자료의 표현, 처리, 저장 방법 등을 총칭하는 것으로 데이터 간의 논리적 관계나 처리 알고리즘을 의미한다. 문서(Document): 소프트웨어를 개발하면서 작성하는 사용자 설명서, 소프트웨어 요구 분석서, 평가서, 명세서, 프로젝터 계획서, 검사 계획서 등을 의미한다. ② 소프트웨어의 특징 상품성: 소프트웨어를 개..
Node.js를 공부하다가 보니 문득 헷갈렸습니다. Javascript에서 모든 객체는 Object를 상속합니다. 그럼 window, global과 같은 전역객체도 Object 객체를 상속하는걸까요. 위의 이미지와 같이 Object와 EventTarget과 window객체가 프로토타입 체인상에 존재한다는 것을 확인할 수 있습니다. 그런데 document는 window에 속한 객체이니까 Node가 window일까요? 그렇지 않습니다. 그렇다고 Node를 상속하지도 않습니다. 그럼 window는 어디에 있고 Node는 뭘까요. 분명 이 사이에 window객체가 있을거 같은데요. 모던 자바스크립트 Deep Dive의 20장 '실행 컨텍스트'에서 정답을 찾을 수 있었습니다. 전역 객체는 전역 코드가 평가되기 이..