Afaik
2025년Archive

8월 7일

오늘 배운 것 (TIL)

프로그래머스에서 6개 문제 해결과 프론트엔드 기술면접 문서 정리

핵심 요약 (TL;DR)

알고리즘 학습에서는 문자열 조작과 반복문 활용 문제를 해결했고, 기술면접 대비를 위해 HTML/CSS, JavaScript 관련 심화 개념을 정리했다. 특히 TailwindCSS와 CSS-in-JS의 장단점, 실행 컨텍스트와 이벤트 루프를 통한 비동기 처리 과정을 체계적으로 학습했다.

풀어본 문제들

1. 문자열의 앞의 n글자

  • 문제링크
  • 핵심: 문자열의 앞에서부터 n개 글자를 추출
  • 학습 포인트: substring 또는 slice 메서드를 활용한 문자열 부분 추출
  • 태그: 문자열

2. A 강조하기

  • 문제링크
  • 핵심: 문자열에서 'A'를 대문자로, 'a'를 소문자로 변환
  • 학습 포인트: 조건에 따른 문자 대소문자 변환 로직
  • 태그: 문자열

3. 특정한 문자를 대문자로 바꾸기

  • 문제링크
  • 핵심: 주어진 문자와 일치하는 모든 문자를 대문자로 변환
  • 학습 포인트: 문자열 순회하며 조건부 문자 변환하기
  • 태그: 문자열

4. 조건에 맞게 수열 변환하기 3

  • 문제링크
  • 핵심: 배열 요소를 특정 조건에 따라 변환
  • 학습 포인트: 배열 순회와 조건문을 활용한 요소 변환
  • 태그: 반복문

5. l로 만들기

  • 문제링크
  • 핵심: 특정 문자보다 사전 순으로 앞서는 문자들을 'l'로 변경
  • 학습 포인트: 문자 아스키 코드 비교와 조건부 변환
  • 태그: 반복문

6. 문자열 바꿔서 찾기

  • 문제링크
  • 핵심: 'A'와 'B'를 서로 바꾼 후 패턴 찾기
  • 학습 포인트: 문자열 치환과 패턴 매칭
  • 태그: 문자열

프론트엔드 기술면접 대비

HTML/CSS 관련 학습 내용

TailwindCSS 심화 개념

  • 유틸리티 퍼스트 접근방식의 장단점 분석
  • PurgeCSS를 통한 불필요한 CSS 제거 메커니즘
  • 반응형 디자인 구현의 효율성과 클래스 복잡성의 트레이드오프
  • 디자이너와의 협업 시 발생할 수 있는 커뮤니케이션 이슈

CSS-in-JS 라이브러리 비교

  • styled-components, emotion, stitches 각각의 특징과 장단점
  • 컴포넌트 스코프 스타일링의 이점과 런타임 성능 비용
  • 서버사이드 렌더링(SSR) 구현 시 고려사항
  • 테마 시스템 구축과 동적 스타일링 전략

JavaScript 심화 개념

실행 컨텍스트와 이벤트 루프

  • Call Stack, Microtask Queue, Macrotask Queue의 동작 원리
  • Promise와 setTimeout의 실행 순서 차이점
  • async/await와 이벤트 루프의 상관관계
  • React 렌더링과 이벤트 루프의 상호작용

성능 최적화 관점

  • 대량 데이터 처리 시 UI 블로킹 방지 전략
  • 이벤트 루프를 활용한 청크 단위 비동기 처리
  • 메모리 관리와 클로저를 활용한 최적화 기법

오늘의 깨달음

  • 알고리즘: 문자열 조작 문제에서는 조건부 변환과 패턴 매칭이 핵심이며, 기본 문자열 메서드들의 활용도가 높다
  • 프론트엔드 기술: CSS-in-JS와 TailwindCSS 같은 스타일링 도구들은 각각 명확한 트레이드오프가 있으며, 프로젝트 특성에 맞는 선택이 중요하다
  • JavaScript 심화: 이벤트 루프와 실행 컨텍스트의 이해는 비동기 코드 디버깅과 성능 최적화에 필수적이다
  • 학습 방향: 알고리즘 기초기를 다지는 동시에 실무에서 자주 묻는 기술면접 질문들을 체계적으로 정리하는 것이 효과적이다