자바에서도 8버전부터 람다식이 도입되면서 대표적으로 Stream API을 통해 함수형 프로그램밍이 가능해졌습니다.
Stream의 특징으로는, 원본 값을 유지하되, 데이터를 활용 할 수 있다는 것 입니다.
또, 단점으로는 어디 부분에서 오류가 났는지 디버깅이 어렵다는 것 입니다.
5. (코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
$ ts-node delay.ts
after 2 seconds
successfully done
Error: failed
6.강의를 통해서 기대하는 바, 또는 얻고 싶은 팁을 적어주세요
아직 함수형 프로그래밍이 낯설어 쓰려고해도 주춤거리고 결국 기존 방법대로 사용하고 있기에, 이번 강의를 통해 자신있게 코드를 작성할 수 있도록 발전하고 싶습니다. 그리고 이런 강의 자체가 처음이라 강의 마지막이 되었을때, 배움에 있어서 내가 성장했구나라는 뿌듯함을 느껴보고 싶습니다 ☺️👍🏻
1. 본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 코드블락을 사용해 올려주세요
리팩토링을 진행하면서 기존 소스를 stream API를 이용하여 람다식으로 구현을 해 보았습니다. 매번 예제를 보며 따라치다가 제가 직접 생각하고 작성한 코드라 인상 깊어 선정하게 되었습니다.
2. Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요
계층형 아키텍쳐는, component들이 각 레이어에 맞게 수평적으로 구조화 되어 있다. 구성되는 계층의 숫자에 따라 N 계층 아키텍처라고 부를 수도 있다. 레이어가 정확히 몇 개로 구성 되어 있다 정할 수 없지만, 크게 3계층과 4계층 구조를 이루고 있다.
3계층
4계층
또는 정확한 레이어 구성이 정해진게 아니기에 business 와 persistence 사이에 service 계층이 추가 되어 사용 될 수 있다.
장점으로는
[참고] https://velog.io/@hojin11choi/TIL-%EA%B3%84%EC%B8%B5%ED%98%95-%EC%95%84%ED%82%A4%ED%85%8D%EC%B3%90-Layered-Architecture
3. Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
의존성 주입이란. 외부에서 두 객체간의 관계를 결정해주는 디자인 패턴. 먼저 의존성이란 클래스간에 의존 관계가 있다는 것을 의미한다. 이 의존 관계라는 것은, 한 클래스가 바뀌게 되면 다른 클래스에 영향을 받는 것을 의미한다.
주입이란, 클래스 외부에서 객체를 생성하여 해당 객체를 클래스 내부에 주입하는 것을 의미한다.
그렇기에 의존성 주입을 하게 되면, 클래스간의 결합도가 약해지게 되면서, 한 쪽 클래스가 변경 될 경우 다른 한 쪽의 클래스 변경될 필요성이 적어진다는 것이다.
클래스간의 결합도까 작아져 유연성과 확장성을 향상 시킬 수 있으며, 인터페이스 기반 설계에 테스트 및 코드의 재사용성을 높여줘 리팩토링에 용이하다.
[참고] https://kotlinworld.com/64
4. 본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
자바에서도 8버전부터 람다식이 도입되면서 대표적으로 Stream API을 통해 함수형 프로그램밍이 가능해졌습니다. Stream의 특징으로는, 원본 값을 유지하되, 데이터를 활용 할 수 있다는 것 입니다. 또, 단점으로는 어디 부분에서 오류가 났는지 디버깅이 어렵다는 것 입니다.
5. (코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
결과값
6.강의를 통해서 기대하는 바, 또는 얻고 싶은 팁을 적어주세요
아직 함수형 프로그래밍이 낯설어 쓰려고해도 주춤거리고 결국 기존 방법대로 사용하고 있기에, 이번 강의를 통해 자신있게 코드를 작성할 수 있도록 발전하고 싶습니다. 그리고 이런 강의 자체가 처음이라 강의 마지막이 되었을때, 배움에 있어서 내가 성장했구나라는 뿌듯함을 느껴보고 싶습니다 ☺️👍🏻