인터페이스를 짠다라는건 왜 짜는걸까? 생각해보셈.
사용하는쪽에서 실제 구현체를 의존하지않고 인터페이스를 의존한다는거임.
- 장점은 구현체를 직접 터치하지 않아도 된다는거고.
- 단점은 코드레벨에서 바로 따라가기가 안됨(왜냐면 추상개념에 의존되어있으니까), 적합한 IoC도구가 없으면 개발자가 의존성 주입등을 관리해줘야함.
장점과 단점을 고려해서 선택하면 됨.
익명(211.209)2024-01-31 21:42
답글
뭐든 '추상' 개념에 의존시킨다는것은 사용처와 실제 구현체 사이에 하나의 '동적' 디스패칭 가능성이 있는 갭을 둔다는거고
이게 보통 변경에 강력해서 유지보수할 때 많이 쓰는 기법들임.
근데 문제는 갭(브릿지)를 두면 항상 나오는 이슈는 어떻게 그 갭을 관리하고 운영할것인가? 그 둘사이의 갭을 누가 연결해주고 개발자들이 어떻게 쉽게 쓰게 할것인가?
의 문제도 항상 같이 나옴.
보통 이런 문제를 쉽게 해결하는 프레임워크들 하에서는 코스트를 고려할 필요가 없기 때문에 거의 무분별하게 써도 상관없음. 하지만 그렇지 않은 환경에서는 생각해볼만한 주제이긴 함.
익명(211.209)2024-01-31 21:44
답글
ts에서 타입으로 정의하는거랑 인터페이스로 정의하는거랑 막 엄청난 차이는 없지 않나?
타입스크립트(nojavascript)2024-01-31 21:45
답글
님이 말한 케이스에서는 type이나 interface나 의미론적으로는 차이없음. 둘다 목적이 추상계층을 만드는거니까.
근데 그것과 별개로 type과 interface는 다른 기능을 가지고 있는것은 맞음.
익명(211.209)2024-01-31 21:47
답글
혹시 알려줄 수 있음?.. 시바 나 타스 너무 모른다 ㅠㅠ
타입스크립트(nojavascript)2024-01-31 21:53
답글
두개의 기능이 겹치는건 95% 겹친다고 생각하고
근데 개발자 대부분 type = interface를 추상계층을 만드는 목적으로 쓸거아녀. 그런 입장에선 두개가 큰 차이 안남.
차이는 어디서 발생하냐면..
TS는 타입으로 코드짜기가 가능함. (튜링완전함) js가 아니라 type코드로 if문 for문 만들 수 있음. 그런거 기반으로 유틸리티 타입을 만드는거고. 이런거 잘 쓰려면 type을 써야함.ype이 더 유틸성이 강한느낌이고 유틸타입도 만들어서 자주 쓰는 편이라 type으로 자연스럽게 쓰게됨.
익명(211.209)2024-01-31 21:59
답글
interface는 나는 잘 안써서 모르겠지만 일단
- 자바 쓰던사람들이 선호함.
- extends같이 명확한 키워드가 있어서 좋아함.
- 타입스크립트가 읽을 때 동일 name의 interface가 있으면 두개의 내용을 합쳐주는 기능이 있음. 이런건 라이브러리 개발자가 테마타입같은거 사용처에서 커스텀 해주게 하고 싶을 때 유용한것으로 알고있음.
익명(211.209)2024-01-31 22:01
답글
와.. ㅈㄴ 명확하네 정리. 잘한다.. 님은 노드 백엔드 개발자심?
타입스크립트(nojavascript)2024-01-31 22:04
답글
나도 이정도로 잘 알아야 하는데.. 염치불구하고 마지막으로 추천해줄 책이나 이런거 있음?
타입스크립트(nojavascript)2024-01-31 22:04
답글
풀스택 개발자이고 보통 JS + TS 로 개발함.
위에 나와있는 내용은 TS를 단순 타입안정성을 위해 사용한다라고 하면 크게 몰라도 되는 지식이라 생각. (내가 위에서 언급했던건 TS언어 자체를 활용하는 방법들인지라..)
만약 관심이 있다면,
책은 그냥 시중에 나와있는 TS 중급자 레벨 이상 책들은 다 찾아보는 편이고 (effective typescript) 근데 책 자체가 없는편이라..
TS쪽은 최신 발표영상이나(외국쪽), 라이브러리 코드 까보는게 젤 좋음.
익명(211.209)2024-01-31 22:08
답글
풀스택 ㄷㄷ... nest랑 next 찍먹하면서 연습하면 될까요.. 목표는 스타트업입니다..
타입스크립트(nojavascript)2024-01-31 22:11
답글
아 취준생이시구나.. 정말 TS 장인이 될거아니면 굳이 알필요없는 지식이구..
연습 많이하시면서 오늘처럼 회고 하면서 하나씩 본인꺼 만들어가셈.
각 프로젝트의 퀄리티도 중요하지만 절대적인 수련연습량도 중요하더만요
인터페이스를 짠다라는건 왜 짜는걸까? 생각해보셈. 사용하는쪽에서 실제 구현체를 의존하지않고 인터페이스를 의존한다는거임. - 장점은 구현체를 직접 터치하지 않아도 된다는거고. - 단점은 코드레벨에서 바로 따라가기가 안됨(왜냐면 추상개념에 의존되어있으니까), 적합한 IoC도구가 없으면 개발자가 의존성 주입등을 관리해줘야함. 장점과 단점을 고려해서 선택하면 됨.
뭐든 '추상' 개념에 의존시킨다는것은 사용처와 실제 구현체 사이에 하나의 '동적' 디스패칭 가능성이 있는 갭을 둔다는거고 이게 보통 변경에 강력해서 유지보수할 때 많이 쓰는 기법들임. 근데 문제는 갭(브릿지)를 두면 항상 나오는 이슈는 어떻게 그 갭을 관리하고 운영할것인가? 그 둘사이의 갭을 누가 연결해주고 개발자들이 어떻게 쉽게 쓰게 할것인가? 의 문제도 항상 같이 나옴. 보통 이런 문제를 쉽게 해결하는 프레임워크들 하에서는 코스트를 고려할 필요가 없기 때문에 거의 무분별하게 써도 상관없음. 하지만 그렇지 않은 환경에서는 생각해볼만한 주제이긴 함.
ts에서 타입으로 정의하는거랑 인터페이스로 정의하는거랑 막 엄청난 차이는 없지 않나?
님이 말한 케이스에서는 type이나 interface나 의미론적으로는 차이없음. 둘다 목적이 추상계층을 만드는거니까. 근데 그것과 별개로 type과 interface는 다른 기능을 가지고 있는것은 맞음.
혹시 알려줄 수 있음?.. 시바 나 타스 너무 모른다 ㅠㅠ
두개의 기능이 겹치는건 95% 겹친다고 생각하고 근데 개발자 대부분 type = interface를 추상계층을 만드는 목적으로 쓸거아녀. 그런 입장에선 두개가 큰 차이 안남. 차이는 어디서 발생하냐면.. TS는 타입으로 코드짜기가 가능함. (튜링완전함) js가 아니라 type코드로 if문 for문 만들 수 있음. 그런거 기반으로 유틸리티 타입을 만드는거고. 이런거 잘 쓰려면 type을 써야함.ype이 더 유틸성이 강한느낌이고 유틸타입도 만들어서 자주 쓰는 편이라 type으로 자연스럽게 쓰게됨.
interface는 나는 잘 안써서 모르겠지만 일단 - 자바 쓰던사람들이 선호함. - extends같이 명확한 키워드가 있어서 좋아함. - 타입스크립트가 읽을 때 동일 name의 interface가 있으면 두개의 내용을 합쳐주는 기능이 있음. 이런건 라이브러리 개발자가 테마타입같은거 사용처에서 커스텀 해주게 하고 싶을 때 유용한것으로 알고있음.
와.. ㅈㄴ 명확하네 정리. 잘한다.. 님은 노드 백엔드 개발자심?
나도 이정도로 잘 알아야 하는데.. 염치불구하고 마지막으로 추천해줄 책이나 이런거 있음?
풀스택 개발자이고 보통 JS + TS 로 개발함. 위에 나와있는 내용은 TS를 단순 타입안정성을 위해 사용한다라고 하면 크게 몰라도 되는 지식이라 생각. (내가 위에서 언급했던건 TS언어 자체를 활용하는 방법들인지라..) 만약 관심이 있다면, 책은 그냥 시중에 나와있는 TS 중급자 레벨 이상 책들은 다 찾아보는 편이고 (effective typescript) 근데 책 자체가 없는편이라.. TS쪽은 최신 발표영상이나(외국쪽), 라이브러리 코드 까보는게 젤 좋음.
풀스택 ㄷㄷ... nest랑 next 찍먹하면서 연습하면 될까요.. 목표는 스타트업입니다..
아 취준생이시구나.. 정말 TS 장인이 될거아니면 굳이 알필요없는 지식이구.. 연습 많이하시면서 오늘처럼 회고 하면서 하나씩 본인꺼 만들어가셈. 각 프로젝트의 퀄리티도 중요하지만 절대적인 수련연습량도 중요하더만요
감사합니다 ㅇㅅㅇ.. 자주봐요우리