Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

216th online meetup, 2025-01-04 #407

Closed
jongfeel opened this issue Dec 31, 2024 · 8 comments · Fixed by #413
Closed

216th online meetup, 2025-01-04 #407

jongfeel opened this issue Dec 31, 2024 · 8 comments · Fixed by #413
Labels
Milestone

Comments

@jongfeel
Copy link
Member

참여 방법

토요일 오전 10시 30분에 아래 google meet 링크를 통해 접속
https://meet.google.com/jyx-mxnq-kpk

이 이슈 assignees에 자신의 github 계정을 추가
약 1시간 30분 분량의 할 내용에 대해 댓글 작성 (최소 모임 시작 전까지)
구글 캘린더 일정 등록 메일 확인을 통해서도 가능 (일정 관리에 도움도 드립니다)
모임 시간에 각자 개발 관련된 공부 진행

  • 시작: 10시 30분, 각자 오늘 진행할 것 이야기 5분 ~ 10분 간 진행
    • 자기소개: 새로 오신 분이 있으면 각자 짧은 자기소개가 진행됩니다
  • 진행: 2시간, 하지만 쉬는 시간 및 기타 잡일 감안해서 1시간 30분 정도로 진행
  • 완료: 12시 30분, 이후 각자 진행한 것 이야기, 12시 40분 전후로 종료.

모임 끝난 후 공부한 내용 정리 & 링크 추가 => 최소 다음 모각코 전까지 확인 가능해야 함.

모임 특징: 특정 출석 횟수를 달성하면 스타벅스 아메리카노 기프티콘과 함께 책 선물의 기회가 있음

출석체크 테이블

주의: 회사일 혹은 마감 기한 임박한 일 처리의 경우는 최대한 자제. 주말 아침에 회사에서 지시한 업무를 하는 것과 내 개인 공부하는 건 구분 필요

@jongfeel jongfeel added the 2025 label Dec 31, 2024
@jongfeel jongfeel added this to the 2025 1Q milestone Dec 31, 2024
@jongfeel jongfeel self-assigned this Dec 31, 2024
@tttghost
Copy link

tttghost commented Dec 31, 2024 via email

@jongfeel
Copy link
Member Author

이날은 제가 상하이 샹그릴라 호텔에서 묵을 예정이라
아마도 온라인 진행만 하고 스터디 시간을 쓸 것 같지는 않습니다.

@aquamagic9 aquamagic9 self-assigned this Jan 3, 2025
@aquamagic9
Copy link

aquamagic9 commented Jan 3, 2025

할 일

CODE 15~16챕터(241~270p) 읽기 및 정리

한 일

15,16챕터 논리게이트와 덧셈기의 발전 과정 및 뺄셈 과정 정리

@Chul-Hwan
Copy link

Chul-Hwan commented Jan 3, 2025

이후 일정으로 인해 12시에 먼저 나가보겠습니다.

할 일

이득우의 게임 수학 8장 삼각형: 물체를 구성하는 가장 작은 단위 ( P266 ~ 281 )

  • 읽고 해당 챕터의 내용을 기반으로 유니티 프로젝트에 정리하기

링크

@ytw9699 ytw9699 assigned ytw9699 and unassigned ytw9699 Jan 3, 2025
@moaoh
Copy link

moaoh commented Jan 4, 2025

할 일

clean code 읽기 시작 및 정리

한 일

좋은 코드란? (0p ~ 20p)

르블랑 법칙, 한번 코드를 작성할때 제대로 작성하자.

  • 논리를 간단하게, 의존성을 최소로
  • 가독성이 좋은 코드 (명쾌한 추상화, 단순한 제어문)
  • 작성자가 아닌 다른사람이 고치기 쉬운 코드 (TDD)
  • 중복줄이기, 한기능만 수행하기, 제대로 표현하기, 작게 추상화하기
  • 짐작했던 기능을 그대로 수행하는 코드

clean code 정리

@ytw9699
Copy link

ytw9699 commented Jan 4, 2025

할일

스프링 부트 - 핵심 원리와 활용 강의 듣기
섹션 10. 마이크로미터, 프로메테우스, 그라파나
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-%ED%95%B5%EC%8B%AC%EC%9B%90%EB%A6%AC-%ED%99%9C%EC%9A%A9/dashboard
image

오늘은 프로메테우스 설치 및 기본적인것을 실습을 해봤습니다ㅎㅎ
오전에 안과를 가봐야해서 조금 일찍 나가볼게요 고생들하셨습니다!

@chichoon
Copy link
Member

chichoon commented Jan 4, 2025

할 일

늦잠 잤습니다... 자바스크립트 딥다이브 프로토타입 19.6장부터 읽기

정리

  • 객체 생성방식과 프로토타입의 결정

    • 다양한 방법으로 객체를 생성가능하지만 공통적으로 내부에서 OrdinaryObjectCreate 를 호출하여 객체를 생성한다
    • OrdinaryObjectCreate 는 프로퍼티 목록과 객체의 프로토타입으로 설정할 값을 인자로 받는다
    • 따라서 객체의 프로토타입은 OrdinaryObjectCreate 에 의해 결정됨
  • 객체 리터럴

    • OrdinaryObjectCreate 의 인자로 전달되는 프로토타입은 Object.prototype 이다
    • Object.prototype 을 상속받았으므로 constructor, hasOwnProperty 메서드를 사용할 수 있다
  • Object 생성자함수

    • 마찬가지로 Object.prototype 이 인자로 전달된다
  • 생성자함수에 의한 생성 (Object 생성자함수 외)

    • OrdinaryObjectCreate 에 전달되는 인자는 생성자함수의 prototype 프로퍼티에 바인딩되어 있는 객체다
    • 예를 들어 Person 생성자함수에 의해 만들어진 객체 me 의 프로토타입은 Person.prototype 이다
    • 따로 Person.prototype 에 값 또는 메서드를 추가하지 않는 이상 me 객체가 상속받을 수 있는 것은 constructor 뿐이다
  • 프로토타입 체인

    • 하지만 위의 이론과 다르게 Person.prototype 을 상속받은 me 객체는 Person.prototype 의 프로퍼티 뿐만 아니라 Object.prototype 의 프로퍼티도 사용할 수 있다
    • 이는 프로토타입 체인 덕분인데, 자바스크립트는 객체의 프로퍼티 및 메서드에 접근 시 해당 객체에 찾는 프로퍼티, 메서드가 존재하지 않을 경우 [[Prototype]] 슬롯을 타고 올라가 상위 프로토타입 (자신의 부모) 의 프로퍼티에 접근한다
    • 프로토타입 체인은 객체지향 프로그래밍의 상속 개념을 구현한 메커니즘이라 볼 수 있다
  • 프로토타입 체인 작동 방식

    • me 객체에서 hasOwnProperty 호출 시도
    • me 객체에 hasOwnProperty 가 존재하지 않음
    • 상위 프로토타입인 Person.prototype 으로 올라가서 hasOwnProperty 호출 시도
    • Person.prototype 에는 constructor만 존재하므로 hasOwnProperty 호출 실패
    • 상위 프로토타입인 Object.prototype 으로 올라가서 hasOwnProperty 호출 시도
    • Object.prototype.hasOwnProperty 를 호출 -> 해당 메서드의 this 에 me 객체 바인딩
    • 이는 call 메서드를 이용하여 함수를 호출하면서 this 를 바인딩하는 것과 비슷하다
  • Object.prototype 의 프로토타입은 존재하지 않는다 (null)

    • 모든 객체의 최상위 프로토타입 (프로토타입 체인의 끝) 은 Object.prototype 이다
    • window 객체, global 객체도 마찬가지
    • 최상위 프로토타입에서도 프로퍼티 검색을 실패했을 경우 undefined 가 반환된다 (함수호출이나 프로퍼티의 필드 접근 등을 하지 않는다면 오류 발생하지 않음)
  • 식별자의 경우 스코프 체인에서 검색한다

    • 스코프 계층구조 (지역 - 전역) 안쪽에서 바깥으로 탐색
  • 오버라이딩과 프로퍼티 섀도잉

    • 오버라이딩: 상위 클래스가 가지고 있는 메서드를 하위 클래스에서 재정의하여 사용하는 것
      • 오버로딩은 함수의 이름은 동일하게 하여 인자만 다르게 넘겨주는 방식으로 서로 다른 함수를 호출하는 기법인데, 자바스크립트에선 유사하게 구현은 가능하지만 직접 지원은 하지 않는다
    • 프로퍼티 섀도잉: 프로토타입의 프로퍼티와 이름이 같은 프로퍼티를 인스턴스에 추가하면, 프로토타입 프로퍼티를 아예 덮어써 버리는 것이 아니라 인스턴스의 프로퍼티로 추가된다
      • 이때 인스턴스의 프로퍼티를 호출시 프로토타입 쪽에 원래 있던 프로퍼티는 가려진다
      • 이처럼 프로퍼티가 가려지는 현상을 프로퍼티 섀도잉이라고 함
    • 프로토타입의 프로퍼티를 아예 삭제하거나 변경하고 싶다면, 하위 객체를 통해 프로토타입에 접근하여 변경하는건 불가능하고, 프로토타입에 직접 접근해야 한다
  • 프로토타입 교체

    • 부모 객체 (프로토타입) 은 동적으로 변경 가능하다
    • 생성자 함수 또는 인스턴스에 의해 교체될 수 있다
    • 생성자 함수에 의한 교체
      • Person 생성자 함수의 내부에서 Person.prototype 에 다른 객체 (객체 리터럴 등) 를 할당할 수 있다
      • Person 생성자를 통해 생성한 객체들은 해당 객체 리터럴을 프로토타입으로 갖게 된다
      • 물론 객체 리터럴로 만든 객체의 상위 프로토타입은 Object.prototype 이다
      • 이 경우 constructor 프로퍼티와 생성자 함수 간 연결이 파괴되므로, constructor 프로퍼티를 수동으로 추가하여 프로토타입의 constructor 를 되살릴 필요가 있다
    • 인스턴스에 의한 프로토타입 교체
      • 인스턴스의 __proto__ 접근자 프로퍼티 혹은 Object.getPrototypeOf 메서드를 통해 프로토타입에 접근할 수 있다
      • 따라서 인스턴스의 __proto__ 접근자 또는 Object.setPrototypeOf 메서드를 사용하면 프로토타입을 교체할 수 있다
      • 생성자함수의 프로토타입을 교체하는 것은, 해당 생성자함수를 이용하여 생성할 인스턴스의 프로토타입을 교체하는 것이다
      • __proto__ 접근자 프로퍼티의 경우 이미 생성된 객체의 프로토타입을 교체하는 것이다
      • 이 경우에도 constructor 프로퍼티와 실제 생성자 함수간 연결이 파괴되므로, 필요할 경우 복구해주어야 한다
    • 두 방식의 차이는, 생성자 함수의 프로토타입을 교체할 경우 이후 해당 생성자함수로 생성하는 모든 인스턴스의 프로토타입이 교체되고, __proto__ 접근자 프로퍼티는 현재 객체에만 영향을 미치므로 이후 생성되는 인스턴스에 영향을 주지않는다
    • 프로토타입을 교체하는 것은 상속 관계를 동적으로 변경하고 연결 파괴를 복구하는 등 번거로우므로 ES6 부터는 클래스 키워드를 사용하여 간단하게 상속을 구현하는 것이 편리하다

@chichoon chichoon self-assigned this Jan 4, 2025
@yeslee-v
Copy link
Member

yeslee-v commented Jan 4, 2025

To do

  • 소프트웨어 엔지니어 가이드북 5장 읽고 정리

Done

  • 제품 지향적(제품 자체에 관심있는) 엔지니어는 제품 팀에서 가장 큰 영향력을 발휘한다.
    • 제품 아이디어와 의견을 제시하는 적극성과 관심, 제품에 대한 주인의식을 갖고 있다.
  • 기업의 성공 방법과 이유, pm과의 긴밀한 관계 구축, 정기적인 피드백 등을 통해 제품 지향적 엔지니어로 발전할 수 있다.
  • 플랫폼 팀은 비즈니스 기능에 대한 솔루션 구축을 시작할 때 구성되며, 시니어 엔지니어를 중심으로 모이는 경향이 있다.
    • 장점: 엔지니어링 복잡성, 광범위한 영향력, 큰 엔지니어링 자유도, 숙련도 높은 팀
    • 단점: 정의하기 어려운 비즈니스 기여도, 비용 센터로 인식, 사용자와의 거리
  • 새로운 유형의 팀에서 일하는 것은 다재다능한 엔지니어가 되기 위한 하나의 방법이다.
  • 평시 vs 전시
    • 평시: 평온하고 안정된 시기, 비즈니스 환경에 대한 부담감이 적고 경쟁에 집착할 필요가 없다.
    • 전시: 기업 존립이 위태로운 시기, 생존해야한다는 부담감과 라이벌에 집착하며 빠른 출시(업무 완수)를 최우선으로 한다.
    • 대부분의 기업은 평시와 전시를 오간다.
  • 빅테크 및 중대형 기술 기업에서 성공하기 위한 방법: 성과 관리, 동료들간의 네트워크 구축
  • 중후반 단계의 스케일업(시리즈 B 이상): 근속 연수와 온보딩이 중요하다.
  • 초기 단계 스타트업: 스타트업의 위험성을 항상 인지하고 있으며 자율성을 최대한 활용하자, 맡은 일을 완수하는 것이 제일 중요하다.
  • 결론: 눈에 띄는 일을 하면서 주변 사람들을 배려하는 자세로 도와주자.

# for free to join this conversation on GitHub. Already have an account? # to comment