Skip to content
New issue

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

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

Already on GitHub? Sign in 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 이상): 근속 연수와 온보딩이 중요하다.
  • 초기 단계 스타트업: 스타트업의 위험성을 항상 인지하고 있으며 자율성을 최대한 활용하자, 맡은 일을 완수하는 것이 제일 중요하다.
  • 결론: 눈에 띄는 일을 하면서 주변 사람들을 배려하는 자세로 도와주자.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment