인터페이스? 하나의 시스템을 구성하는 2개의 구성 요소(하드웨어, 소프트웨어) 또는 2개의 시스템이 상호 작용할 수 있도록 접속되는 경계(boundary), 이 경계에서 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 말 interface는 자바에서 한 단계 더 높은 추상화를 하기 위해 사용된다. interface는 구현 로직은 존재하지 않으며 메서드에 대한 입력(input), 출력(output)만 정의하고 있다. interface를 활용해 추상화를 하는 이유는 소프트웨어에 변경이 발생할 경우 소스 코드에 변경을 최소화함으로써 유지보수 비용을 줄이고, 변화에 빠르게 대응하기 위함이다. 추상화를 함으로써 미래의 변화에 빠르게 대응할 수 있지만 추상화를 하려면 추상화에 따른 ..
TDD 란? 테스트 케이스를 먼저 작성한 다음 테스트 케이스에 맞추어 실제 개발 단계로 이행하는 개발 방법론 TDD = TFD(Test First Development) + 리팩토링 TDD 원칙 원칙 1 - 실패하는 단위 테스트를 작성할 때까지 프로덕션 코드(production code)를 작성하지 않는다. 원칙 2 - 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 원칙 3 - 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. TDD에 대한 생각 1. 명확하지 않은 요구사항에 대해서 구체적으로 다가갈 수 있다. 아직 이해하지 못한 도메인이나 기획에서 테스트 코드를 먼저 작성한다면 더 쉽게 리펙토링에 다가갈 수 있다고 생각한다. 예상한 입력과 출력에 대해서 테스트..
이력서에 적힌 내용에 충실하게 질문을 하셨습니다. 아래에는 면접 중에 받았던 질문을 정리했습니다. 스스로 했던 답에 대해서는 잘 기억나지 않아서 찾아보고 다시 작성했습니다.(주관적인 부분이 많습니다.)깃 허브의 두 프로젝트에서 패키지 구조가 다른 점이 무엇인가?참고 : 계층별, 기능별 패키지 구성하기 도메인이 무엇일까?일반적인 요구사항, 전문 용어, 그리고 컴퓨터 프로그래밍 분야에서 문제를 풀기 위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역소프트웨어로 해결하고자 하는 문제 영역 (예) 광고회사의 광고와 관련된 지식 = 도메인출처 : 도메인 주도 설계 비동기 방식은 무엇이고 어떤 이점이 있을까?동기 : 요청과 결과가 동시에 일어난다. 장점 : 설계가 매우 간단하고 직관적 단..