전체 글 70

슬픔의 삼각형(Triangle of Sadness) - 2022

3.5 / 5 147분이라는 긴 러닝타임 동안 젠더, 빈부, 사상, 인종 간의 갈등이 크루즈를 뒤집는 파도처럼 끊임없이 몰아친다. 초호화 크루즈와 함께 계급이 전복되지만, 그 누구도 카타르시스를 느끼지 못한다. 부유층은 산산조각이 나 흩어져버린 지위를 프롤레타리아는 언제 다시 잃어버릴지 모를 권력을 움켜쥐려 애쓴다. 관객 또한 작품 속 위선에 대한 잣대가 결국 본인을 향하기에 유쾌하게 웃을 수만은 없다. 극중인물과 영화를 소비하는 모두에게 새겨진 슬픔의 삼각형(미간을 찌푸리면 드러나는 주름)이 쉽게 펴지진 않을 것이다. 황금종려상이라는 상을 받은 영화지만 신선하지 않은 소재, 노골적인 레퍼런스, 풍자보다는 직설에 가까운 표현으로 꽤 비평을 받는 모양이다. 더숲 아트시네마에서 나눠준 굿즈 기울이면 grum..

Review/Movie 2023.06.28

Code Convention (Style Guide)

Airbnb Style Guide Naming convention 단일 문자 이름 사용X, 이름 설명 // bad function q() { // ... } // good function query() { // ... } 객체, 함수, 인스턴스 이름 camelCase 사용 // bad const OBJEcttsssss = {}; const this_is_my_object = {}; function c() {} // good const thisIsMyObject = {}; function thisIsMyFunction() {} 생성자나 클래스 이름을 지정할 때만 PascalCase 사용 // bad function user(options) { this.name = options.name; } const ..

Programming 2023.06.27

[React] Virtual DOM

Virtual DOM React에는 virtual DOM이라는 가상의 DOM 객체가 존재 실제 DOM 객체에 접근하여 조작하는 대신 Virtual DOM 객체에 접근하여 전후를 비교, 바뀐 부분을 적용 Virtual DOM 활용 이유 DOM은 브라우저가 트리구조로 만들어진 객체 모델이기 때문에 JavaScript는 쉽게 DOM 객체에 접근할 수 있고, 조작 가능 프로그래밍 언어로 조작하는 DOM은 애플리케이션 UI 상태가 변경될 때마다 전체 업데이트. 이런 렌더링은 브라우저의 구동 능력에 의존하기 때문에 DOM의 조작 속도는 느려짐 일정 부분이 바뀐다면 전체가 아닌 바뀐 부분만 렌더링 하기 위해 Virtual DOM이 등장 Virtual DOM 객체는 화면에 표시되는 내용을 직접 변경하는 것이 아니라 실..

Programming 2023.06.26

[WIL] week2 회고

Keep 시간 지키며 계획된 시간에 공부하기 1일 1시간 알고리즘 문제 풀이 React 선행학습 수면시간을 줄여 몰입하는 공부 시간 증가 아침 운동 (월수금-테니스, 화목토일-헬스) Problem 타입스크립트 공부가 지체됨 알고리즘 테스트에서 가장 쉬운 문제 오답 제출 강의를 보는 시간 집중도 하락 지난주보단 나아졌지만 시간표대로 철저하게 움직이지 못함 Try(우선순위) 쉬운 문제도 꼼꼼히 읽고 입력값 / 출력값 잘 확인하기 차주 월요일부터 타입스크립트 챌린지 수강하기 시간표 안에서 끝까지 몰입하기 강의 시간 집중도 높이기 2주차를 마치며 하루 12시간 이상 공부하려 노력하다 보니 지난주보다 집중하는 시간이 길어졌다. 알고리즘 문제들도 다시 익숙해지기 시작했고 블로깅 시간이 짧아지고 직접 코딩하는 시간은..

Programming 2023.06.26

효과적인 코드리뷰 방법

리뷰 규칙 1. 왜 개선이 필요한지 충분한 이유 설명 주관적이거나 추상한 표현은 지양 리뷰이가 개선의 필요성을 느낄 수 있도록 구체적인 이유 작성 예) const data = [ ['데이터베이스', 'A', 3], ['교양영어', 'B+', 1], ['철학', 'A', 2] ]; “data라는 이름은 현재의 자료구조가 무엇인지 그 의도를 알기가 어렵네요. 학점 정보를 담고 있는 자료구조 같은데 이와 관련된 변수명을 짓는다면 현재 정의한 자료구조가 무엇인지 그 의도를 쉽게 파악할 수 있을 것 같아요.” 2. 답을 알려주기보다 개선 방법을 선택하고 고민하게끔 답을 알려주는 코드 지양 리뷰이 입장에서 학습할 기회를 갖고 스스로 코드를 리팩토링할 수 있게 함 예) const result = []; arr.for..

Programming 2023.06.26

[알고리즘] 양옆앞뒤 큰 수 찾기

조건 5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 클 때 해당 위치에 * 을 표시하는 프로그램을 작성하세요. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교합니다. 조건 1: 결과는 하나의 문자열이며, 2차원 배열의 각 배열의 요소들에 해당하는 문자는 길이 1의 공백으로 구분된다. 조건2: 결과에서 배열간의 구분은 줄바꿈(개행문자)으로 한다. 조건3: 비교할 원소가 존재하지 않는 경우 0으로 간주한다. My Solution / Try 비교할 이중배열의 상하좌우 해당 인덱스 요소가 undefined라면 크기를 비교할 수 없음 push와 unshift를 활용해서 이중배열 테두리를 전부 0으로 채움 상하좌우를 비교해서 제일 큰 수에 * 재할당 function solution(a..

Programming 2023.06.26

[알고리즘] 프로그래머스 체육복

프로그래머스 문제 링크 My Solution / Try 학생수 길이의 배열을 만들고 전부 1로 채움 (Array,fill 활용) 잃어버린 학생의 배열의 요소는 0으로 재할당 여벌을 가지고 있는 학생의 배열의 요소는 +1 반복문을 돌며 잃어버린 학생(i)의 앞번호 학생(i-1)이 여벌을 가지고 있다면 해당 학생에게 빌려주고(arr[i] = 1) 앞번호 학생의 체육복 개수는 다시 1개로(arr[i-1] = 1) 앞번호 학생이 여벌을 가지고 있다면 arr[i] = 1 / arr[i+1] = 1 function solution(n, lost, reserve) { let arr = Array(n).fill(1); lost.map((e) => arr[e-1] = 0); reserve.map(e => arr[e-1]..

Programming 2023.06.26

[Git] Git Commit Message Conventions

Format 제목,본문,꼬리말로 나누고 각각은 빈줄로 구분 (): Type feat : (feature) 새로운 기능 추가 fix : (bug fix) 버그 수정 docs : (documentation) 문서 수정 design : 스타일링, css 수정 dir : 폴더 구조 구성, 변경 style : (formatting, missing semi colons, …) 코드 포맷팅, 세미콜론 누락, 코드 변경 x refactor : 리팩토링 test : (when adding missing tests) 테스트 코드 추가 chore : (maintain) 기타 수정 (빌드, 패키지 매니저) Subject 명령조 현재시제 사용 “changed” 나 “changes”가 아닌 “change”사용 첫 글자 대문자 x..

Programming 2023.06.26