분류 전체보기 201

2년차 비전공자 프런트엔드 개발자의 6개월간의 이직 기록

요약 회사를 다니면서 3개월 + 퇴사 후 3개월 = 총 6개월간 이직 준비를 하였고 지금은 이직에 성공하여 번개장터에서 개발자로 일하고 있다! 2년 차 개발자였지만 비전공자에 거의 0년 차 개발자 수준이었던 내가 이직을 하게 된 과정을 정리하려고 한다. 이직 결심 2년간 중소기업 쇼핑몰에서 풀 스택 개발자(말이 풀 스택이지 프런트엔드, 백엔드 구분조차 없는 곳+개발자 없음으로 그냥 모든 일을 다 했다..)로 일했다. 이직을 결심했던 건 사실 꽤 오래되었는데 내일 채움 공제 적금을 넣고 있어서 1년만 더 참자.. 10개월만 더 참자.. 6개월만... 3개월만... 해가면서 2년을 버텨냈다. 이직을 결심한 이유는 크게 두 가지로 압축할 수 있다. 1. 개발 문화 없음, 개발자가 성장할 수 없는 환경 2. 낮..

기타 2022.07.01

LeetCode 2258. Escape the Spreading Fire (BFS, Dijkstra)

https://leetcode.com/problems/escape-the-spreading-fire/ Escape the Spreading Fire - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 불이 1초마다 사방으로 퍼지는데 불에 타지 않고 도착지까지 간다고 할 수 있을 때, 시작위치에서 최대로 머무를 수 있는 시간을 구하는 문제이다. 크게 두 단계로 나눠서 진행해야 한다. 1단계는 불이 근원지부터 모든 셀에 퍼지는데 걸리는 시간을 grid에 기록하고 2단..

알고리즘 2022.06.22

프로그래밍 안티 패턴 9가지

1. Brook's law - 프로젝트 공수 산정 시의 manXmonth는 교환 불가능 - 종속 관계에 따른 오버헤드 발생, 교육에 시간 빼앗김 - 일정 지연 시 인원 투입으로 만회하는 것이 아닌 일정을 재조정하자 2. Conway's law - 아키텍처는 조직을 따른다. - 아키텍처 설계 후 조직을 편성하라 3. Broken Windows Theory - 나쁜 코드를 방치하면 소프트웨어 전체를 단기간에 부패시킨다. - 코드의 좋지 않은 부분이 보이면 즉시 복구시키자. 4. Law of entropy increase - 코드는 그대로 두면 썩은 코드가 된다. - 코드 부패의 징후를 신속히 처리하자 [코드 부패의 징후] 경직됨: 변경하기 어려운 것. 종속성을 줄이자 깨지기 쉬움: 변경한 부분과 관련 없는 ..

프로그래밍 2022.06.14

Readable 코드를 작성하기 위한 프로그래밍의 원칙 7가지

1. KISS (Keep It Simple Stupid / Keep It Short and Simple) 코드는 단순해야 한다. 지금 작성하는 코드가 진짜로 필요한 코드인지 생각해보자 less is more 2. DRY (Don't Repeat Yourself) 중복을 피하라 코드에 중복이 있으면 수정이나 기능 추가가 어려워진다. 코드를 추상화하여 중복을 제거할 수 있다. 3. YAGNI (You Aren't Going to Need it) 나중에 이 코드가 필요해질 거라는 예측으로 코드를 작성하지 말기. 현재 필요한 코드만 작성하자 4. PIE (Program Intently and Expressively) 코드로 의도를 전달하기. 코드는 문서이다. 코드를 작성할 때는 '작성하기 쉬움'보다 '읽기 쉬움..

프로그래밍 2022.06.03

[JavaScript] 자바스크립트의 자료구조 Set과 Map

Set 중복되지 않는 유일한 값들의 집합이다. 배열과 비교했을 때 다음과 같은 차이점이 있다. 중복된 값을 가지지 않음 요소 순서에 의미가 없음 인덱스로 요소에 접근 불가 Set의 이런 특성을 이용해 배열에서 중복을 제거하고 싶을 때 유용하게 사용할 수 있다. const set = new Set(); // 빈 set 객체 생성 const set = new Set([1,2,3]); // 중복 제거된 {1,2,3} 생성 console.log(set.size); // 요소 개수 set.add(1); // 요소 추가 console.log(set.has(1)); // 요소 존재 확인 set.delete(1); // 요소 삭제 set.clear(); // 요소 전부 삭제 Map 키-값으로 이루어진 컬렉션이다. 객체..

JavaScript 2022.06.02

[HTML5] html의 data attribute (데이터 속성)

data attributes html5는 특정 엘리먼트와 연관되어있지만 어떤 의미를 가질 필요가 없는 데이터에 대한 확장성을 고려하여 디자인되었다. data-* 속성을 사용하여 비표준 속성이나 DOM의 추가 속성을 사용하는 등의 hack 없이도 의미론적인 추가 정보를 저장할 수 있다. 사용 예시 HTML에서 아래와 같이 data- 속성을 사용하여 시각적으로 나타낼 필요가 없는 추가 정보를 저장할 수 있다. ... 이를 자바스크립트에서 읽으려면 아래와 같이 작성한다. const article = document.querySelector('#electric-cars'); // The following would also work: // const article = document.getElementById(..

WEB 2022.06.02

LeetCode LCA문제: 1143. Longest Common Subsequence (top-down, bottom-up)

https://leetcode.com/problems/longest-common-subsequence/ Longest Common Subsequence - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 알고리즘의 전형적인 LCA문제 그 자체이다. 이 문제는 top-down 방식과 bottom-up 방식 두 가지로 풀어보았다. class Solution: def longestCommonSubsequence(self, text1: str, text2: str) ->..

알고리즘 2022.06.01

LeetCode BFS문제: 909. Snakes and Ladders

https://leetcode.com/problems/snakes-and-ladders/ Snakes and Ladders - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제의 포인트는 두 가지로 요약할 수 있다. 1. 각 칸에 붙여진 번호를 이용해 좌표를 구하는 것 2. ladder 또는 snake를 만났을 때 해당 위치로 바로 이동하는 게 하나의 과정이라는 것 먼저 좌표를 구하는 함수를 따로 만들어서 현재 칸 번호를 주면 row, col을 되돌려주도록..

알고리즘 2022.05.31

LeetCode 다익스트라 알고리즘, DFS 문제: 778. Swim in Rising Water

https://leetcode.com/problems/swim-in-rising-water/ Swim in Rising Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 이 문제는 DFS문제인데 다익스트라 알고리즘을 사용해서 풀 수도 있다. 파이썬은 heapq 메서드가 있어서 우선순위 큐를 구현하기 쉽기 때문에 파이썬으로는 다익스트라 알고리즘을 적용해서 풀었고 자바스크립트는 DFS로 풀었다. [다익스트라] 다익스트라 알고리즘은 이 문제처럼 각 지점 간..

알고리즘 2022.05.26

LeetCode DFS문제: 1202. Smallest String With Swaps(Sorting, DFS, 자바스크립트 이중배열)

https://leetcode.com/problems/smallest-string-with-swaps/ Smallest String With Swaps - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 정렬과 DFS가 같이 혼합된 문제이다. 문제의 핵심은 pairs에서 swap 할 수 있는 모든 인덱스들을 묶어서 swap 하는 데에 있다. 만약 swap 할 수 있는 인덱스가 (1,2) (2,3) 두 가지라면 결국 (1,2,3)끼리는 어느 위치로든 swap 할 수..

알고리즘 2022.05.25