Recent Posts
«   2025/05   »
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 29 30 31
관리 메뉴

개발자 박가나

[241011 TIL] 본캠프 8일차 본문

내일배움캠프

[241011 TIL] 본캠프 8일차

gnchoco97 2024. 10. 11. 17:03

 Today 1. [JavaScript 문법 종합반] 강의 

  • 실행 컨텍스트 및 Call Stack
    • 실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체
    • 실행 컨텍스트는 Call Stack에 쌓임
    • 실행 컨텍스트 객체에 담기는 정보 3가지
  • 호이스팅
    • 매개변수 및 변수는 선언부를 호이스팅
    • 함수는 전체를 호이스팅
    • 함수 선언문보다는 함수 표현식을 사용하는 것이 좋음
  • 상황에 따라 달라지는 this
    • 전역 공간에서의 this는 전역 객체를 가리킴
    • 메서드로서 호출할 경우 this는 메서드 호출 주체를 가리침
    • 함수로서 호출할 경우 this는 전역 객체를 가리킴
  • this 우회 방법
    • 변수 활용
    • 화살표 함수 사용
  • 명시적 this 바인딩 - call
    • 함수를 즉시 실행
    • 첫 번째 매개변수에 this로 binding할 객체를 넣어줌
  • 명시적 this 바인딩 - apply
    • call과 동일
    • binding할 객체는 동일하게 넣어주지만, 나머지 부분을 배열 형태로 넣어줌
  • 명시적 this 바인딩 - bind
    • 함수를 즉시 실행하지 않고 새로운 함수를 반환
    • 함수에 this를 미리 적용
    • 부분 적용 함수 구현 가능
오늘 강의에서는 코딩보다는 이론적인 내용이 쉴  틈 없이 몰아쳤다. 코드를 기반으로 객체가 생성되고, 그 객체가 어딘가에 쌓이고, 그 객체에는 어떤 정보가 담겨있고, 코드를 실행하면서 해당 객체가 어떻게 변화되고, 상황에 따라 this는 무엇을 가리키고 등등... 눈에 보이는 부분이 아닌 코드 뒷 편에서 돌아가는 현상들에 대해서 배우려니 너무 복잡하고 막연했다. 처음에는 이해하는 것조차 어려웠지만 튜터님께서 반복해서 말씀을 해주시고, 그림을 그려가면서 쉽게 설명해주신 덕분에 2번, 3번 듣다 보니 서서히 이해가 가기 시작했다. 그동안은 혼자서 개발을 하다보니 다른 사람의 코드를 볼 일이 없었는데, 앞으로는 다른 사람들과 협업을 하고 다른 사람의 코드를 이어받아 유지보수를 하는 일도 많이 생길테니 그러한 상황에서의 혼란을 줄이려면 이러한 개념들에 대한 이해도 꼭 필요하겠다는 생각이 들었다.

 


 

 Today 2. [알고리즘] 특강 

  • [문제풀이] 문자열을 정수로 바꾸기
    • 형변환 방법 : parseInt(), Number(), + 연산자 등
  • [문제풀이] 서울에서 김서방 찾기
    • 인덱스 탐색 방법 : for문, findIndex(), indexOf() 등
  • [문제풀이] 수박수박수박수박수박수
  • [문제풀이] 가운데 글자 가져오기
  • 알고리즘 공부에 대한 조언
    • 문제 단위가 아니라 시간 단위로 투자하는 것이 좋음
    • 시간이 지나 혼자 힘으로 풀었을 때 풀 수 있는 것을 목표로 잡는 것이 좋음
    • 코딩테스트의 경우 보통 코드의 가독성과 성능을 중심으로 평가
  • 알고리즘 공부를 어떻게 진행하면 좋을까?
    • why : 좋은 회사, 좋은 코드, JavaScript 학습을 위해서 필요
    • where : 플랫폼에서 직접, IDE 사용
    • how : 자신의 사용 언어, 학습 수단(플랫폼, 책, 강의 등)에 맞게 선택
    • what : 자신에게 맞는 난이도의 문제와 유형으로 가능한 많이 풀기
    • who : 자신의 성향에 맞게 팀 단위 또는 혼자서 진행
    • when : 주기적인 학습(매일 아침, 매주 화요일 등) 계획 필요
  •  
지난 특강 때 숙제로 나왔던 문제들에 대한 풀이를 해주셨다. 혼자서 해결했던 문제들이었지만 내 방식과 다른 풀이들을 보면서 저런 메소드도 있구나, 저런 흐름으로 접근할 수도 있구나 하는 생각에 꽤 흥미로웠던 것 같다. 알고리즘 문제를 푸는 것은 앞으로 남은 캠프 기간동안, 어쩌면 개발자로 취업을 한 뒤에도 계속해서 해 나가야 할 일 중 하나인데 기초부터 차근차근히 익혀서 습관으로 자리 잡을 수 있도록 노력할 것이다.