• February 3, 2025

    브라우저 동작원리, Critical Render Path 이해하기

    WEB

    프론트엔드

    # Critical Render Path(CRP) 브라우저가 HTML, CSS, Javascript 를 화면에 픽셀로 변화하는 일련의 단계를 말한다. 이를 최적화 하는 것이 어플리케이션 응답속도를 개선할 수 있다. `Critical Render Path`는 Document Object Model(DOM), CSS Object Model(CSSOM), R
  • September 24, 2024

    최근 추석 연휴에 개발 치느라 너무 급급했다. 요즘 개발보다는 퍼블리싱 위주로 화면만 개발하고 있다. 똑같은 화면을 몇 달째 개발하다보니 지루한 면이 없지않다. 화면 개발만 한다고 해서 신경써야할것들이 없는게 아니다. 화면 개발을 하면서 기획서랑 상이한부분들을 면밀히 살펴봐야하고, 다른 부분이 있으면 사이드 이펙트 발생시키지 않으면서 빠르게 수정해야한다.
  • August 28, 2024

    이번주 개발은 기획 수정과 관련된 것들을 개발했다. 기존 리스트 형태의 SNB table 형태로 변경(table 형태의 snb가 있었나…?)하는거라던지, UI 중 카드 섹션이 있는데, 그 가드 섹션에 액션이 무조건 들어가도록 기획이 재정의 된다던지 이런 개발건들이었다. 항상 기획 입장에서는 버튼을 단순히 하단에서 상단으로 올리는 작업이지만, 개발 입장에
  • August 23, 2024

    개발 완료된 건에 대해서 수정사항들이 올라왔다. 기존 개발했던 내역에서 추가된 사항 + 개발하다가 놓친 사소한건이 있었다. 4개의 컬럼 헤더에 대해서 다국어 번역 기능을 넣지 않은 부분과 value 포매팅 부분을 빼먹었는데, 사소한 부분이더라도, 결국에는 개발에서 챙기지 못한 부분이다. 항상 jira 완료처리 하기전에 확인해야하는 부분인대, 개발하느라 정
  • August 22, 2024

    google token을 갱신하는 로직을 개발했다. google api 에서는 token 유효시간 1시간만을 제공하기 때문에 refresh를 하기 위해서는 FE에서 직접 로직을 제어할 필요가 있었다. 요청사항은 google api에서 post를 할때 401에러로 token 유효성을 판단하지 말고 이전에 판단하길 원했다. 따라서 화면에서 interval을
  • August 19, 2024

    오늘 개발은 이전 개발했던 부분에서 팝업을 그리는 로직 하나 빠뜨린게 있어 그 부분을 추가하였다. 팝업 호출은 data-grid의 컬럼을 그리는 로직에 추가를 해야했었다. 또한, 컬럼 그리는 로직은 hooks로 분리해 관리포인트를 분산시켰다. 하지만 팝업을 띄우기 위해서는 useAlert 객체가 필요했고, 그 객체를 결국 컴포넌트 내부에서 useColum
  • August 16, 2024

    오늘은 화면개발만 주구장창 수행했다. 기획서는 애매하고, 기획자는 실장급이기때문에 문의하기도 쉽지않았다. 일단 나온 화면 그대로 화면개발에 들어갔고, 기획적으로 궁금하거나 문제되는 사항들은 추후 논의하기로 했다. 현재 프로젝트에서는 화면개발 할 때, 템플릿화 시켜놓고 개발하기 때문에 화면하나 만드는데 그렇게 어렵지도 않다. 무엇보다 개발속도를 빨리 낼
  • August 13, 2024

    오전까지 기존 리스트 형태의 관계 코드들을 트리구조 형식으로 변경하는 작업을 했다. 기획전 기술검토 단계라 트리 구조로 뿌려주고 다시 그 형태를 children하위 값을 넣어 반복되는 구조로 변경하는 개발을 진행해야했다. child item을 호출하기 전 parent키를 전달하여 그 값에 대응되는 체크박스 상태값들을 저장하는 방식으로 머릿속으로 구상했지만
  • August 12, 2024

    일주일동안 공통코드 관계설정 매핑하는 로직만 개발했다. 하지만 결과는 좋지않았다. 지난주까지 개발 마무리 작업에 들어가야했었고, 주말동안 테스트코드를 작성해서 개발에 매진했지만 결과는 실패로 마무리됐다. 오늘 주간보고에 들어가 업무 조정 관련해서 논의가 이뤄졌다. 애초에 기획자체가 너무 모호하다는 의견으로 많이 모아졌다. BE 데이터 구조는 tree 구
  • July 31, 2024

    edit 화면 분기처리에 대해 고민하다 리더님의 의견을 듣고 결정했다. create, modify 두 컴포넌트에서 서로 비슷한 형태인데, 비즈니스 로직이 서로 달라 고민하던차 리더님은 분리하는게 좋을것 같다는 의견을 주셔 반영했다. 또한, modify 화면에서는 기존 scene 데이터를 가져와야하는 이슈가 있었다. 이전에는 스토어에 저장되어있는 값을 가
  • July 30, 2024

    edit 화면에서 사용될 데이터 구조를 다시 설계했다. 기존 구조와는 크게 다르지 않고, 다음 레벨에서 가져갈 value 리스트를 null값으로 하고 나머지 인터페이스는 동일하게 가져갔다. 단 card의 id를 uuid로 설정하여 unique한 id를 갖도록 했다. 카드 내부 공통코드 select box를 연동했고, 해당 공통코드 id를 통해서 공통코드
  • July 29, 2024

    체크박스 상태값을 트래킹하여 체크여부에 따라 테이블 컬럼을 변경하는 로직을 짰다. react-hook-form을 사용하고 있는터라, useForm의 객체를 binding하여 상태가 변경된 이후 columns을 변경하는 로직으로 구조를 설계했다. 카드를 선택함에 따라서 카드의 선택 여부를 나타내는 네비게이션 제어하는 기능을 개발했다. 카드 네비게이션 색상
  • July 24, 2021

    엔지니어라면 AS를 기다리지 않고 직접 부품을 다룰 줄 아는 것도 개발자의 역량이라고 생각합니다. 그렇기 때문에 webpack이란 개념을 배우고 싶었고, 강의를 찾아보던 중 좋은 강의가 있어 정리하고 또 공유하려고 합니다. # NPM ## 빌드 자동화 프로젝트에서 사용하는 라이브러리를 다운받고, 각종 테스트를 용이하게 한다. # 개발환경 커스터마
  • July 5, 2020

    [React 가이드 참조해서 공부](https://ko.reactjs.org/docs/rendering-elements.html) # 초기 설정 0. `Visual Studio Code` 설치. 1. `node.js` 설치. 2. `npm -v` 명령어로 설치 확인. 3. `npm create-react-app` 으로 create-react-ap
  • January 9, 2020

    # Problem [BOJ 2468](https://www.acmicpc.net/problem/2468) 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고
  • January 8, 2020

    # Problem [BOJ 2583](https://www.acmicpc.net/problem/2583) 눈금의 간격이 1인 M×N(M,N≤100)크기의 모눈종이가 있다. 이 모눈종이 위에 눈금에 맞추어 K개의 직사각형을 그릴 때, 이들 K개의 직사각형의 내부를 제외한 나머지 부분이 몇 개의 분리된 영역으로 나누어진다. 예를 들어 M=5, N=7 인
  • January 8, 2020

    # Problem [BOJ 10026](https://www.acmicpc.net/problem/10026) 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다
  • January 7, 2020

    # Problem [BOJ 9466](https://www.acmicpc.net/problem/9466) 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 수도 있다. 프로젝트 팀을 구성하기 위해, 모든 학생들은 프
  • January 2, 2020

    # Object 란 객체지향은 어떤 Object를 명시하여 보다 코드 구성을 간결하고 개발자가 읽기 쉬운 형태로 구성한다. 여기서 기초가 되는 것은 당연 Object(객체)이다. JS에서도 Object가 사용되는데, Java와 C++과는 조큼 다른 형식으로 쓰인다. 알아보기 전에 우선 배열부터 알아보자. ## 배열 선언 방법 ```html <sc
  • January 1, 2020

    # Problem [BOJ 11403](https://www.acmicpc.net/problem/11403) 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래
  • December 30, 2019

    # Problem [BOJ 2667](https://www.acmicpc.net/problem/2667) BOJ 1743문제와 매우 유사한 문제였다. 배열 상에서 동서남북으로 연결된 그래프들을 찾되, 그래프 영역의 크기를 구하는 문제이다. 연결상태는 동서남북 중 1의 값을 갖는 배열이 있으면 연결됐다고 판단한다. # Solution ## 문제 접근
  • December 29, 2019

    # Problem [BOJ 11724](https://www.acmicpc.net/problem/11724) 방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오. # Solution ## 문제 접근 순서 1. 그래프의 연결 요소를 알아내는 문제. 2. dfs, bfs 둘다 이용
  • December 26, 2019

    # Problem [BOJ 2644](https://www.acmicpc.net/problem/2644) 우리 나라는 가족 혹은 친척들 사이의 관계를 촌수라는 단위로 표현하는 독특한 문화를 가지고 있다. 이러한 촌수는 다음과 같은 방식으로 계산된다. 기본적으로 부모와 자식 사이를 1촌으로 정의하고 이로부터 사람들 간의 촌수를 계산한다. 예를 들면 나와
  • December 18, 2019

    # Problem [BOJ 2294](https://www.acmicpc.net/problem/2294) n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그러면서 동전의 개수가 최소가 되도록 하려고 한다. 각각의 동전은 몇 개라도 사용할 수 있다. 사용한 동전의 구성이 같은데, 순서만 다른 것은
  • November 2, 2019

    # Problem [BOJ 2941](https://www.acmicpc.net/problem/2941) 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. | 크로아티아 알파벳 | 변경 | | :---------------: | :--: | | č
  • November 1, 2019

    # Problem [BOJ 5622](https://www.acmicpc.net/problem/5622) 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면
  • November 1, 2019

    # Problem [BOJ 10809](https://www.acmicpc.net/problem/10809) 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. # Solution ## Source ```
  • October 26, 2019

    # Problem 초기 위치와경로를 찾는 문제로 조건이 주어진다. 조건에 따라 이동하며 루트를 그리는 문제이다. 문자 'a', 'b', 'c'는 row 성질을 갖는다. 1행은 'a', 2행은 'b', 3행은 'c' 이런식으로 'h'까지 존재한다. 문자 '1', '2', '3'. '4' 는 col성질을 갖게된다. 1행은 '1', 2행은 '2', 3행은
  • October 26, 2019

    # Problem 아버지가 중고차를 사주신다고 하여 중고차를 알아보는 보았다. 제일 저렴한 차는 뭔가 찜찜하다고 3번째로 저렴한 중고차량을 구매한다고 한다. 같은 금액일 경우 동일한 등수로 취급한다. ## 예제 1. prices = {70, 20, 30 60, 50, 10, 80, 40, 100, 90} 이런 경우 30이 3번째로 저렴한 차량이다.
  • October 26, 2019

    # Problem 누나와 내가 백화점에서 물건을 구매하려고 한다. 따로 구매하려던 도중 50달러 이상을 구매하면 10달러를 할인해주는 프로모션이 진행중이였다. 나는 9달러, 50달러 물건을, 누나는 67달러 물건을 구매하려고 할 때, 총 내야하는 금액은 얼마인가? goods배열 안에 구매하려는 물품의 가격이 제공된다. ## 제약조건 goods 요소
  • October 22, 2019

    # Problem [BOJ 2908](https://www.acmicpc.net/problem/2908) 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고