본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 코드블락을 사용해 올려주세요
아직 많은 기술적인 코드를 작성한 적은 없어서 Jpa에서 pagination을 사용한 경험을 공유하겠습니다.
@DisplayName("게시글 정보를 입력하면, 게시글을 생성한다")
@Test
void givenArticleInfo_whenSavingArticle_thenSavesArticle() {
// given
ArticleDto dto = ArticleDto.of(LocalDateTime.now(), "Taeheon", "title", "content", "hashtag");
given(articleRepository.save(any(Article.class))).willReturn(null);
// when
sut.saveArticle(dto);
// then
then(articleRepository).should().save(any(Article.class));
}
Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요
레이어드 아키텍처는 애플리케이션의 컴포넌트를 유사한 것을 레이어로 묶어서 수평적으로 작성한 구조로 설계 방식에 따라 나누어지는데, 보통 3계층을 사용합니다.
프리젠테이션 계층 : 클라이언트의 요청을 해석하고 비즈니스 계층에서 받은 결과를 응답하는 역할. UI나 API제공
비즈니스 계층 : 애플리케이션의 기능을 정의하고 객체를 통해 세부 작업 수행. DDD 기반의 아키텍처는 도메인 계층을 분리하기도 한다.
데이터 접근 계층 : 데이터베이스에 접근하는 작업 수행
Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
의존성 주입이란, 클래스 간의 의존성을 클래스 외부에서 주입하는 것을 의미합니다. 한 클래스가 바뀔 때 다른 클래스가 영향을 받는다는 의미입니다.
의존성 주입이 필요한 이유는 유지 보수를 위해서 라고 생각합니다. 프로그램의 크기가 커질수록 객체끼리 강한 결합이 생기면 수정할 때 너무 어려워서 의존성 주입이라는 새로운 설계 방식을 선택했다고 생각합니다. 객체 생성에 대한 책임을 Controller에게 위임할 수 있어서 수정 부분이 정해지기 때문입니다.
본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
Optional : Optional은 Null Point Exception의 부담을 줄이기 위해 사용합니다. Optional은 Wrapper 클래스인데, 결과가 null이될 수 있고, null에 의해 오류가 발생할 가능성이 높을 때 사용합니다.
사전과제
본인이 작성했던 코드 중 공유하고 싶은 코드를 이유와 함께 마크다운 코드블락을 사용해 올려주세요 아직 많은 기술적인 코드를 작성한 적은 없어서 Jpa에서 pagination을 사용한 경험을 공유하겠습니다.
Layered Architecture(계층 아키텍처)에 대해서 설명해 주세요
레이어드 아키텍처는 애플리케이션의 컴포넌트를 유사한 것을 레이어로 묶어서 수평적으로 작성한 구조로 설계 방식에 따라 나누어지는데, 보통 3계층을 사용합니다.
Dependency Injection(의존성 주입)의 개념과 함께, 왜 필요한지 작성해 주세요
의존성 주입이란, 클래스 간의 의존성을 클래스 외부에서 주입하는 것을 의미합니다. 한 클래스가 바뀔 때 다른 클래스가 영향을 받는다는 의미입니다. 의존성 주입이 필요한 이유는 유지 보수를 위해서 라고 생각합니다. 프로그램의 크기가 커질수록 객체끼리 강한 결합이 생기면 수정할 때 너무 어려워서 의존성 주입이라는 새로운 설계 방식을 선택했다고 생각합니다. 객체 생성에 대한 책임을 Controller에게 위임할 수 있어서 수정 부분이 정해지기 때문입니다.
본인이 사용하는 언어의 Functional Programming(함수형 프로그래밍) 스펙을 예제와 함께 소개해 주세요
(코드 작성) 다음 스펙을 만족하는 delay 함수를 작성해 주세요 (hint: Promise 사용)
강의를 통해서 기대하는 바, 또는 얻고 싶은 팁을 적어주세요
구현해야될 것을 보고 어떤 구조와 방식으로 구현해야 될지 시작하기가 힘들었습니다. 수정이 필요하고 유지보수가 가능한 코드를 구현하는 방법을 터득하고 싶습니다.