| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- HTML기초
- react
- javascript
- html
- 그래프
- js
- 정렬
- c언어
- frontend
- 정글
- 프론트앤드
- 해시
- 백준
- Mini-React
- 알고리즘 기초
- 알고리즘
- Python
- 코딩
- 크래프톤 정글
- 코딩테스트
- CSS
- DFS
- 프로그래머스
- Git
- 그리디
- 혼자 공부해서 개발까지
- 프론트엔드
- BFS
- 팀프로젝트
- 개발자
- Today
- Total
목록2026/02 (5)
민혁이의 IT스토리
자바스크립트를 공부하다 보면 가장 우리를 당황스럽게 만드는 존재가 있습니다. 바로 this입니다. 상황에 따라, 장소에 따라 그 정체가 변하는 this는 마치 카멜레온 같습니다.늘 포스팅에서는 this가 결정되는 결정적인 차이인 "누가 나를 불렀는가(호출 방식)"와 "어디서 태어났는가(선언 환경)"의 관점에서 핵심 내용을 정리해 보겠습니다. 메서드 호출: "누가 나를 불렀는가?"가장 직관적인 형태입니다. 점(.) 앞을 주목하세요. 객체의 메서드로 호출될 때, 그 내부의 this는 메서드를 호출한 객체를 가리킵니다.const user = { name: "Gemini", greet() { console.log(this.name); }};user.greet(); // 결과: Gemini (점 앞의..
최근 프로젝트를 진행하면서 AI 도구에 의존하다 보니, 예전에는 분명 자신 있게 설명할 수 있었던 개념들조차 기억에서 흐릿해지고 있음을 느꼈습니다. 편안함에 익숙해져 '내 지식'이 사라져가고 있었던 것이죠. 지금이라도 이 문제를 깨닫고 다시 기초를 다질 수 있어 다행이라 생각합니다. AI가 짜준 코드가 아닌, 온전한 내 지식으로 만들기 위해 오늘 학습한 내용을 기록해 봅니다. 지난 글에서 우리는 코드가 실행될 때 생성되는 환경인 실행 컨텍스트에 대해 알아봤습니다.자바스크립트 엔진은 효율성을 위해 코드가 종료되면 사용했던 메모리를 즉시 정리합니다. 그런데, 분명 종료된 함수의 변수인데도 사라지지 않고 계속 살아남아 메모리를 차지하는 녀석들이 있습니다.우리는 이것을 클로저(Closure)라고 부릅니다. 도대..
요즘은 클론 코딩이나 AI의 도움으로 무엇이든 뚝딱 만들어낼 수 있는 시대입니다. 그래서인지 이제 더 이상 언어의 깊은 곳까지 공부할 필요가 있을까?'라는 회의적인 시선도 종종 보입니다.하지만 저는 오히려 그렇기 때문에 개발자가 자신의 주력 언어를 더 깊이 있게 파고들어야 한다고 생각합니다. '어떻게' 구현하는지를 넘어 '왜' 그렇게 동작하는지를 아는 힘이 결국엔 차이를 만드니까요. 그 다짐으로 다시 자바스크립트의 가장 기초이자 핵심인 실행 컨텍스트를 들여다보게 되었습니다. 모던 자바스크립트(ES6+)를 배우면 가장 먼저 듣는 조언이 있습니다. "var는 이제 잊으세요. 무조건 let과 const만 쓰세요." 하지만 면접관이 "왜 var를 쓰면 안 되나요?"라고 묻거나, 혹은 레거시 코드를 유지보수하..
https://www.acmicpc.net/problem/2178 문제 풀이 전략 BFS(Breadth-First Search) 활용: 최단 경로 문제에서는 현재 위치에서 가까운 곳부터 탐색하는 BFS가 적합합니다. DFS는 경로가 존재함을 확인하기엔 좋으나, 최단 거리를 보장하기 위해 별도의 처리가 필요하기 때문입니다.방문 처리와 거리 계산의 통합: 별도의 방문 리스트(visited)를 만들 수도 있지만, 입력받은 미로 리스트 자체에 지금까지 이동한 거리(Step)를 직접 갱신하면 메모리를 아끼고 방문 여부도 동시에 체크할 수 있습니다. 해결 과정데이터 입력: 미로를 2차원 리스트로 입력받습니다. (이때 숫자가 붙어서 들어오므로 list(input())을 활용해 하나씩 쪼개줍니다.)Queue 초기화:..
https://www.acmicpc.net/problem/11000 문제 풀이 전략문제 접근방식그리디 알고리즘 + 최소 힙을 활용강의를 시작하는 시간을 기준으로 정렬 후, 끝나는 시간과 다음 강의 시작 시간 비교핵심 아이어힙에는 현재 사용중인 강의실에 종료시간을 저장새 강의 시작 시간이 가장 빨리 끝나는 강의실의 종료 시간 이상이면 → 그 강의실 재사용그렇지 않으면 → 새 강의실 추가 해결 과정강의 정보(시작, 종료시간)를 리스트에 정렬 후 시작 시간 기준 정렬첫 번째 강의의 종료시간을 힙에 push두 번째 강의의부터 순회 :새 강의 시작시간 >= 힙의 최솟값 (heapqpop)새 강의 종료 시간 (heapqpush) 전체 코드 어려웠던 점 & 개선삽질의 기록: "모든 방을 다 뒤져야 하나?" (..