전체 글

FE
TIL/네트워크

주소창에 www.google.com을 입력하면 발생하는 일

2025. 03. 07 블로그 A/S 프로젝트🚧 로 추가한 글입니다.기존에는 "웹 브라우저" 로 퉁쳤던 대상을, 정확히 누가 수행하는지 자세히 알아봅시다. 주소창에 URI를 입력하면 어떤 일이 생길까?주소창에 URI를 입력하면 다음과 같은 일이 진행된다. 1. handling inputs: 텍스트를 입력했네. 쿼리야 URL이야?누가: 브라우저 프로세스의 UI 쓰레드가무엇을: 주소창에 입력한 텍스트를어떻게Search Query인지, URL인지 판단Search Query - 검색엔진으로 쿼리 보내서 검색 준비URL - 네트워크 쓰레드로 URL 값 보낼 준비 2. Start Navigation: enter 눌렀네. 요청 보내자!2-1. UI 쓰레드누가: 브라우저 프로세스의 UI 쓰레드가무엇을: 주소창에 입력..

TIL/운영체제

크롬 브라우저 아키텍처 알아보기 (프로세스와 스레드)

2025. 03. 07 블로그 A/S 프로젝트🚧 로 추가한 글입니다.프로세스, 쓰레드 ... 이론으로는 많이 들어봤고, 정리까지 했었다.그렇지만 이걸 내가 왜 알아야할까.. 라는 불평을 하곤 했다. 운영체제는 정말 프론트엔드와 관련이 없을까? (1) 용어정리프로세스프로그램을 구동해, 프로그램의 상태가 메모리상에서 실행되는 작업 단위하나의 프로그램에는 하나의 프로세스 할당스레드하나의 프로그램에서 여러 개의 작업을 수행하기 위한 더 작은 실행 단위하나의 프로세스에는 여러 개의 스레드스레드끼리는 메모리 공유 크롬 브라우저를 애용하지만 크롬 브라우저 아키텍처는 모름매일 크롬 브라우저로 개발하지만 아키텍처에 대해서는 모르고 있었다... 이렇게 여러 프로세스를 가지고 있는데, 특히 Renderer 프로세스와 Pl..

프로젝트/소프티어 부트캠프

[2주차][Taskify] JS로 함수형 컴포넌트 만들기(1) - 가상 DOM, DOM 변환

리액트의 동작원리함수(컴포넌트) → 객체(VDOM) → DOM 1. 함수(컴포넌트) → 객체(VDOM)리액트처럼 컴포넌트를 사용하기 위해서 반환된 JSX 를 가상 돔 JS 로 바꾸어보는 것부터 시작하자!JSX를 JS로 트랜스파일링?트랜스파일러: 바벨const App = () => { return ( hello );}ReactDOM.render(, document.getElementById("root"));import { jsx as _jsx } from "react/jsx-runtime";const App = () => { return _jsx("div", { children: _jsx("h1", { children: "hello" }) ..

프로젝트/소프티어 부트캠프

[1주차] 펀딩 프로그래스 업데이트를 위한 실시간 데이터 동기화 기술

앞으로 진행할 프로젝트의 팀원들을 만나 그라운드 룰과 주제를 정하는 시간을 가졌다! 아이디에이션 끝에 "택시비 펀딩"을 주제로 한 프로젝트를 진행하게 됐다. 이렇게 빨리 정해진 적은 없었던 것 같은데... 너무 재미있을 것 같다.  요구사항펀딩 프로그래스 업데이트에 대해 어떻게 처리해야 할 지에 대한 논의가 이루어졌다. 아래와 같은 상황이다. 1. 사용자 B가 펀딩 X에 접근. 총 목표 금액이 50000원임을 확인.2. 사용자 A가 펀딩 X에 1000원 후원.3. 사용자 B는 화면을 새로고침 하지 않아도, 펀딩 X의 초기 금액에서 1000원이 차감된 "49000원" 화면과 + 늘어난 진행도를 볼 수 있어야 함! 위와 같은 기능 구현을 위해, 서버에서 클라이언트로 실시간 이벤트를 전송할 수 있는 기술들을 ..

개발일기

우아한테크코스 2트 합격 후기 ✨ (7기 프론트엔드 FE) + 입과포기?!

코드 및 회고 모음4주간 진행했던 프리코스 코드 및 회고들이다.1주차 GitHub - hamo-o/javascript-calculator-7Contribute to hamo-o/javascript-calculator-7 development by creating an account on GitHub.github.com [우테코 프리코스 1주차 회고] 첫 TDD는 계획대로 되지 않아시작하면서사실 이전 프리코스에서는 "다들 그렇게 하니까" 라는 생각으로 쫓기듯 코드를 작성했다. 하지만 이번 프리코스에서는 "내 코드를 완벽히 이해하자" 라는 목표를 세우고, 나만의 근거hamo0.tistory.com 2주차 GitHub - hamo-o/javascript-racingcar-7Contribute to hamo-o..

프로젝트/우테코 프리코스

[우테코 프리코스 3주차 회고] 모델: 뷰야, 나 업데이트됐어! 새로 렌더링해조.

시작하면서지난 주 개선 사항은 다음과 같다.TDD와 BDD를 상호보완적으로 사용하기단위테스트를 억지로 BDD로 작성하려 하지 않고, 기능 개발 시 TDD로 개발하다가 예외 처리와 전체 기능 테스트에서 BDD를 사용했다.제어 역전을 구현할 수 있는 다른 패턴들 공부하기MVC, MVP, MVVM, MVI, FLUX 등 다시 공부. 중간 객체를 어떻게 잘 활용할 수 있을지 생각해보고, 각 모듈의 역할에 대해서 고민하기MVC, MVP, MVVM, MVI의 흐름을 직접 그려보면서 익혔다. FLUX와 REDUX는 MVI에서 파생된 개념이라 따로 공부하면 좋을 것 같다.또한 2주차보다 3주차 미션의 구현 사항이 조금 더 복잡해짐에 따라, 자연스럽게 중간 객체의 필요성을 느끼게 되었다. 컨트롤러에서 입력 단위에 따라 ..

프로젝트/우테코 프리코스

[우테코 프리코스 2주차 회고] 넌 전혀 MVC 하고 있지 않아

시작하면서지난 주 개선 사항은 다음과 같다.테스트 네이밍 관련 내용 조사, 나만의 규칙 만들기It Should, Given/When/Then, Describe/Context/It 등의 방식이 있다.이번 테스트는 BDD 방법론 중 하나의 방법인 Given/When/Then 으로 작성하였다.테스트 방식에 따라서 네이밍 체계 역시 달라지기 때문에, 방식을 먼저 정하고 규칙을 만드는 것이 좋을 것 같다.주석으로 처리하는 대신 사용할 수 있는 skip() 활용하기에러 클래스 관리 관련 내용 학습1주차에서 커스텀 에러 클래스를 지정했었다. 2주차에는 공통 에러 헤더를 부모 클래스에서 관리하지 않고 각 자식 클래스에서 import 해오던 부분을 수정하였다. super() 을 조금 더 효율적으로 사용할 수 있었다.또한..

햄oOoOo
디자인보다 개발이 더 좋아