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

221th online meetup, 2025-02-08 #417

Closed
jongfeel opened this issue Feb 2, 2025 · 5 comments · Fixed by #422
Closed

221th online meetup, 2025-02-08 #417

jongfeel opened this issue Feb 2, 2025 · 5 comments · Fixed by #422
Assignees
Labels
Milestone

Comments

@jongfeel
Copy link
Member

jongfeel commented Feb 2, 2025

참여 방법

토요일 오전 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 Feb 2, 2025
@jongfeel jongfeel added this to the 2025 1Q milestone Feb 2, 2025
@jongfeel jongfeel self-assigned this Feb 2, 2025
@moaoh
Copy link

moaoh commented Feb 4, 2025

할 일

"면접을 위한 CS 전공지식 노트" 전체적으로 읽고 면접준비

한 일

1장 디자인 패턴과 프로그래밍 패러다임

1.1 디자인 패턴

싱글톤 패턴

하나의 클래스에서 오직 하나의 인스턴스만 가지게 하는 패턴

하나의 class에서 하나의 인스턴스만 생성하기때문에 인스턴스를 생성할 때 드는 비용을 줄일 수 있다는 장점이 있다.

싱글톤 패턴 단점

싱글톤 패턴은 TDD를 실행할때 걸림돌이 된다.

TDD를 할때 UT를 주로 하는데 UT에 경우 테스트가 서로 독립적이어야 하며 테스트를 어떤 순서로든 실행할 수 있어야한다.

하지만, 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 독립적인 인스턴스를 만들기가 어렵다.

이를 해결하게 위해서 싱글톤 패턴 + DI 형식을 사용하여 코드를 구성한다.

DI란?

의존성 주입(DI, Dependency Injection) 으로 메인에서 직접적으로 의존성을 주기보다 중간에 의존성을 주입해주는 의존성 주입자를 두어 간접적으로 의존성을 주입하는 방식.

DI도 원칙이라기보다는 일종의 디자인패턴의 속한다고한다.

싱글톤 패턴 + DI code

팩토리 패턴

상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴

정적 메서드를 쓰면 클래스의 인스턴스 없이 호출이 가능하여 메모리를 절약할 수 있고,
개별 인스턴스에 묶이지 않으며 클래스 내의 함수를 정의할 수 있는 장점이 있다.

팩토리 패턴 code

전략 패턴 (정책 패턴)

객체의 행위를 바꾸고 싶은 경우 직접 수정하지 않고 캡슐화한 객체를 컨텍스트안에서 바꿔주면서 사용하는 패턴

ex

결제 시스템과 같이 신한카드를 사용할지, 국민카드를 사용할지 결제라는 큰 틀을 두고 어떤 카드를 사용할지 변경해서 사용하는 것과 같은 경우에 사용

옵저버 패턴

객체와 주체를 서로 분리하여 주체가 객체의 상태 변화를 관찰하다가 상태에 대한 변화가 있을때 옵저버 목록에 등록된 옵저버에게 변화를 알려주는 디자인 패턴

ex

트위터나 인스타그램과 같이 어떠한 주체를 팔로우한 사람들에게 주체가 새로운 글을 올렸다면 팔로우한 사람들에게 새로운 글이 올라왔다는 사실을 전달해주는 것 같은 경우에 사용

프록시 패턴

대상에 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할

직접적으로 객체가 프로세스의 접근할 수 없기떄문에 보안, 데이터 검증, 캐싱, 로깅등에 사용된다.

ex

nginx를 프록시 서버로 많이 사용, 클라이언트가 직접적으로 서버에 접근 못하게 하거나 서버가 직접적으로 클라이언트의 접근하지 못하도록 프록시 서버를 둔다.

이터레이터 패턴

이터레이터(*순환하다)*를 사용하여 컬렉션(리스트, 벡터, 맵 등) 내부 구조를 노출하지 않고 요소를 순차적으로 접근하는 패턴

ex

이터레이터 패턴 code

수정중..

@yeslee-v
Copy link
Member

yeslee-v commented Feb 7, 2025

To do

  • PR 분리 블로그 초안 작성

Done

@aquamagic9 aquamagic9 self-assigned this Feb 8, 2025
@aquamagic9
Copy link

aquamagic9 commented Feb 8, 2025

할 일

CODE 20~21챕터(381~410p) 읽기 및 정리

한 일

20챕터의 누산기 연산과정에 대한 이해를 하느라 시간이 걸려 20페이지 분량을 읽고 정리하였습니다.

20챕터 메모리 및 연산자동화 내용 정리

@jongfeel
Copy link
Member Author

jongfeel commented Feb 8, 2025

도메인 주도 설계 읽고 정리하기

결론 부분 읽고 정리, 책 완독
매주 토요일 1시간 정도 읽고 정리하는데 1년 5개월 정도의 시간 소요.

@chichoon chichoon self-assigned this Feb 8, 2025
@chichoon
Copy link
Member

chichoon commented Feb 8, 2025

할일

자바스크립트 딥다이브 20장 strict mode 읽기

한 일

function foo() {
  x = 10; // x는 전역에서도 함수내에서도 선언된적이 없음
}

foo();
console.log(x); // x가 존재하는 변수처럼 동작
  • strict mode

    • 위 예시에서 x는 함수 내에서 할당되었으나 선언된 적이 없다
    • 전역에도 값 선언문이 없기 때문에 ReferenceError가 발생할 것 같지만, 자바스크립트 엔진은 스코프 체인에서 x를 찾지 못했을 경우 암묵적으로 x라는 값을 전역객체에 생성하기 때문에 마치 x가 존재하는 것처럼 동작한다
    • 이러한 현상을 암묵적 전역이라고 부르며, 오류의 원인이 되기 쉽기 때문에 지양해야 한다
    • 허나 기본 자바스크립트로는 해당 사항이 에러로 간주되지 않는다
    • 따라서 strict mode 를 쓰거나 eslint 등의 린트 도구를 사용하면 이러한 실수를 미연에 방지할 수 있다
      • 린트는 소스코드 실행 전 코드를 스캔하여 문법적 오류 및 잠재적 오류를 찾아내는 도구
      • 코딩 컨벤션까지 강제할 수 있어 효과가 좋다
      • es6의 클래스와 모듈은 strict mode 가 자동 적용된다
  • strict mode 의 적용

    • 파일 꼭대기에 use strict; 를 적으면 해당 스크립트 전체에 strict mode 가 적용된다
    • 함수 몸체의 선두에 추가하면 함수와 내부의 중첩함수에 strict mode 가 적용된다
    • 아무튼 strict mode 를 적용시키고 싶은 코드보다 위쪽에 적어야 한다
  • 전역에 strict mode 적용은 지양하는 것이 좋다

    • html 에 script 태그가 여러개 있을 경우, 각 태그 내부 스크립트는 독자적으로 strict mode 가 적용되나, 어떤 스크립트는 strict mode 이고 어떤 스크립트는 non-strict mode (strict mode 아님) 로 작성할 경우 오히려 오류를 발생시킬 수 있다
    • 스코프를 구분하여 사용하는 것이 좋다
  • 마찬가지로 함수 단위로도 strict mode 와 non strict mode 를 혼용하는 것은 좋지 않다

    • 즉시실행 함수로 전체 스크립트를 감싸서 적용하는 것이 바람직하다
  • strict mode 사용시 발생하는 에러

    • 선언하지 않은 변수 참조 시 ReferenceError 발생 (암묵적 전역 불가능)
    • 변수, 함수, 매개변수를 delete 로 삭제할 경우 SyntaxError 발생
    • 매개변수 이름이 중복될 경우 SyntaxError 발생
    • with문 사용시 SyntaxError 발생
      • with문은 동일한 객체의 프로퍼티를 반복해서 사용할 때 객체이름을 생략할 수 있어 편리하지만, 성능과 가독성이 나빠지므로 지양할 필요가 있다
  • strict mode 적용시 발생하는 변화

    • 일반 함수의 this 에 undefined 가 바인딩된다
      • 생성자가 아닌 일반 함수는 this를 쓸 필요가 없기 때문
    • 매개변수에 전달된 인수를 함수 내부에서 재할당하여 변경해도 arguments 객체의 값에 반영되지 않는다

@jongfeel jongfeel moved this from Todo to In Progress in 2025 Online study meetup Feb 8, 2025
@jongfeel jongfeel linked a pull request Feb 10, 2025 that will close this issue
@github-project-automation github-project-automation bot moved this from In Progress to Done in 2025 Online study meetup Feb 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

5 participants