본문 바로가기

분류 전체보기100

코테 시간초과 분석 방법 코딩테스트에 관심있다면, 시간 복잡도 Big-O에 대해 한번쯤은 들어봤을 것이다. 필자 또한 리스트 탐색은 O(n), 정렬이 된 경우 이분탐색 시 O(log(n))까지 최적화 가능하다는 것은 학습했다. 하지만 문제를 보고 어쩔 때 최적화가 필요할지 판단이 서지 않았었다. 그냥 시간을 줄일 수록 좋은거 아닌가? 라고 막연히 생각했다. 이때 백준 정렬 1~3 문제 간의 비교를 통해 왜 어느 문제는 O(N^2) 으로 통과가 되고, 다른 문제는 O(n*log(n))까지 최적화가 필요한지 알아보겠다. 같은 정렬 문제가 아니다. 다음은 정렬과 관련된 3문제를 캡쳐했다.  박스 표시한 곳을 보면 각기 다른 시간/메모리 제한 그리고 입력개수(N)이 다름을 확인할 수 있다. 정렬 관련 로직은 다양하고 각 상황에 맞는 정.. 2024. 8. 14.
[정글 SW사관학교] WEEK0. 미니 프로젝트 최종 발표 QnA 모음집 입소하자마자 3일간 개발한 웹서비스 발표 및 피드백 시간이 있었다. 필수 포함 사항은 다음과 같다.- 로그인 기능- Jinja2 템플릿 엔진을 이용한 SSR 구현 및 CSR과 비교- Bootstrap을 대체할 CSS 라이브러리 사용하기 (Bulma, Tailwind 등)- JWT와 HTTP Athorization header를 사용해 구현하기 (Session cookie 대비 등장하게 된 배경)- AWS 배포 및 도메인 연결 (https 적용하면 좋음) 모두 최소 요건은 물론이고 채팅, 시연까지 해낸 것을 보고 다시 한번 동료들의 실력에 감탄하지 않을 수 없었다. 또한 운영진분들의 기술 면접과 같은 질문 공세에 무엇을 대비하고 주의해야할지 알 수 있는 시간이었다. 아래는 발표 중에 진행된 운영진의 질문 .. 2024. 8. 14.
[정글 SW사관학교] WEEK0. 숨 돌릴 틈 없이 지난 6월 퇴사를 했다. P스타트업에서 프론트엔드 개발자로 3년동안 근무했고, 성장에 대한 갈증이 채워지지 않았다. 3년차쯤 되면 경력 이직이 쉽지 않을까 생각하며 안주했고 수많은 서류 광탈로 이직에 실패했다. 나는 캡숑짱 (。•̀ᴗ-)✧ 멋진 개발자가 되고 싶었기에 이제는 정들었던 곳을 떠나 새로운 도전이 필요했다. 그러던 중 SW 사관학교 정글을 알게 되었다. 일반적인 부트캠프와 달랐다. "자기주도 학습", "동료들", "코앞의 취업이 아니라 먼 미래의 고액 연봉 개발자"를 추구하는 점이 끌렸다. 무엇보다 입학시험과 면접을 토대로 선별하는 점이 마음에 들었다. 실은 첫 취준 당시 최소한의 요건을 보는 곳들만 지원했었고, 재직했던 곳은 코딩테스트 없이 서류와 면접만으로 붙었다. 그만큼 나 스스로가 많이.. 2024. 8. 10.
[Introduction To Algorithms] CH1. 알고리즘의 역할 요약 혹은 연습문제를 기록합니다. 1.1 알고리즘 알고리즘이란, 입출력 문제를 해결하기 위한 잘 정의된 계산 절차  1. "정렬" 또는 "두 점 사이의 최단 경로" 문제 중 이런 문제가 발생하는 현실의 예- 정렬 : 도서관 책이 저자순으로 정렬됨.- 두 점 사이의 최단 경로 : 카카오 네비를 켜서 목적지까지 최단 경로를 확인함. 2. 현실에서 속도 외에 효율성을 평가할 만한 다른 척도로 무엇이 있는지이때 속도라 함은, 최적의 해를 구하기까지의 기간일텐데문제 측면에서 정말 적절한 문제 추상화가 이루어졌는지, 쓸모있는 문제인지?(좀 더 고민 필요) 3. 예전에 본 적있는 자료구조 중 하나를 골라 그것의 장점과 한계를 각각 논하라.스택 - 자체적으로 순서의 의미를 갖고 있음 / 찾고자하는 데이터가 맨 처음에 .. 2024. 7. 24.
[41장] 모던딥 자바스크립트 Deep Dive 스터디 날짜 : 2023. 12. 17 (일) 41-1장. 타이머 (기본) 호출 스케줄링 함수는 호출 즉시 실행된다. 하지만, 함수 호출을 예약하고 싶을때가 있다. 이때 "타이머 함수"를 사용하게된다. 이를 호출 스케줄링 이라고 한다. 타이머 함수 - setTimeout : n초 후 한번만 호출 (제거 시 clearTimeout) - setInterval : n초 마다 반복 호출 (제거 시 clearInterval) 위 함수들은 호스트 객체이며, 비동기처리 방식으로 동작한다. Q. 호스트 객체란? A. EMSAScript 에서 정의되지 않고, 실행되는 환경(브라우저 및 NodeJS) 에서 제공하는 함수 setTimeout - 인자 넘길 수 있는 것 처음 알았다.. 매번 클로저함수로 만들어서 인자 넘겨주었.. 2023. 12. 17.
[37장] 모던딥 자바스크립트 Deep Dive 스터디 날짜 : 2023. 12. 10 (일) 37-1장. Set 정의 - 수학적 집합 특성과 일치, 수학적 집합을 구현하기 위한 자료구조 - 인자로는 이터러블 인수를 받음. - Set 객체 또한 이터러블 메소드 (CRUD) 메소드 (번외) Q. Set 의 요소는 무엇이든 올 수 있다. 이때, Object 요소는 내용물이 같으면 같다고 인식할까? A. 역시나, 참조타입의 객체는 다르다고 인식한다. 주소값이 같을때만, 같다고 인식함. - 주의사항 : Set 내부에서는 NaN 와 +0, -0 를 같게 인식한다. 집합 연산 (책 예제 기반, 직접 구현하기) - 교집합 (intersection) - 합집합 (union) - 차집합 (difference) - 부분집합 (isSuperset) 37-2장. Map 정.. 2023. 12. 10.
[31-33장] 모던딥 자바스크립트 Deep Dive 스터디 날짜 : 2023. 12. 03 (일)31장. RegExp  https://regexr.com/ 이런데서 GUI 로 설명을해줘도 감이 안오고.. 정규식.. 나도 잘 쓰고 싶고..사수분들이 사용하던, 탐이 나는 그 정규식! 드디어 공부해보았다!  정규표현식이란?- regular expression- 문자열을 대상으로 "패턴 매칭 기능"- 패턴 매칭 기능 ? 특정 패턴과 일치하는 문자열 검색, 추출, 치환 정규 표현식의 생성- pattern, flag 존재- ES6부터 RegExp 문법 생겨남 메서드-  test : boolean 반환- match  : 배열 반환, 전체 매칭 스트링 아이템 반환- exec : (첫번째 결과에 대해서만) 배열 반환, lastIndex 업데이트 활용도 높아 보이나 사용 .. 2023. 12. 3.
[16-20장] 모던 자바스크립트 Deep Dive 스터디 날짜 : 2023. 11. 12 (일) 16장. 프로퍼티 어트리뷰트 - [[...]] 내부 슬롯, 메서드 - 직접 접근 불가능, __proto__로 간접 접근 가능 - [[Enumerable]] 열거, iterable 가능여부 [처음보는 객체 관련 프로퍼티] - Object.defineProperty - Object.preventExtensions : 객체의 장래 확장 방지 - Object.seal : freeze 와 달리 기존 속성값 변경은 가능 - Object.freeze : 모-두 금지 - Object.getOwnPropertyDescriptors : 처음보는 클래스, 객체의 인터페이스를 알 수 있다. TODO: 이걸로 사내 디자인시스템 스토리북 프로퍼티 doc 기능 고도화할 수 있겠는데? .. 2023. 11. 12.
[11-15장] 모던 자바스크립트 Deep Dive 스터디 날짜 : 2023. 11. 05 (일) 11장. 원시값과 객체의 비교 [원시 값은 불변 값, 참조 값은 가변] Q. 하지만, 다음처럼 변수 x에 재할당이 가능한데 도대체 무엇이 불변이란 말인가?? let x = 1; x = 2; // 재할당 A. 불변이라는 것은 변수가 아닌 값에 대한 진술, 새로운 원시값을 할당 시 새로운 메모리 공간을 확보하게된다. 즉 주소가 바뀐다. 그에 반해 참조타입은 주소는 유지된채로 내부 값이 바뀔 수 있다. TODO: 타 언어에서 말하는 참조타입과는 조금 다른게, C언어 포인터 개념은 변수에 주소값을 저장하고 연산하는데, JS 에서는 주소에 있는 값을 전달한다고 한다. 조금 와닿지 않아서 More... [JS 문자열은 원시타입] - C 언어 같은 경우 char x[10.. 2023. 11. 12.