본문 바로가기

CS18

테스트 주도 개발(TDD)란? TDD(Test Driven Development) 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First’개념에 기반을 둔 단순한 설계를 중요시한다. 이 기법을 개발했거나 '재발견’한 것으로 인정되는 Kent Beck(켄트 벡)은 2003년 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말하였다. eXtream Programming(XP)란? 익스트림 프로그래밍 미래에 대한 예측을 최대한 하지 않고 지속적으로 프로토타입을 완성하는 애자일 기방법론 중 하나이다. 이 방법.. 2023. 11. 13.
헥사고날 아키텍처(Hexagonal Architecture)란 헥사고날 아키텍처란 자료 출처 Hexagonal은 사전적 의미로 '육각형 건축물’을 의미한다. 소프트웨어 설계에 사용되는 아키텍처 패턴중 하나로 여러 소프트웨어 환경에 쉽게 연결할 수 있도록, MSA와 같이 느슨하게 결합된 애플리케이션 구성요소를 만드는 것을 목표로 하는 아키텍처이다. 도메인의 비즈니스 로직을 외부 라이브러리 및 툴로부터 분리 할 때 포트와 어댑터로 사용하기 때문에 포트&어댑터 아키텍처라고도 부른다. (막상 6각형 네이밍보다는 포트&어댑터 아키텍처가 조금 더 맞는 표현이라 생각한다.) 헥사고날 핵심 도메인 비즈니스 로직이 외부요소에 의존하지 않게 만들고, 프레젠테이션 계층(controller)과 데이터 소스 계층(persistence) 같은 외부 요소들이 도메인 계층에 의존하도록 한다. .. 2023. 10. 28.
MSA(MicroService Architecture)에 대해서 MSA란?MicroService Architecture의 줄임말애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 서비스 지향 아키텍처(SOA)란Service Oriented Architecture의 줄임말애플리케이션 구성요소가 통신 프로토콜을 통해 다른 구성요소에 서비스를 제공하는 아키텍처 접근 방식이다.대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다.각 서비스는 독립적인 단위이다. MSA 등장배경Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어.. 2023. 10. 28.
알고리즘 학습과 메모리 상관관계를 알아보자 ✔️ 알고리즘을 왜 해야할까…? 유진호 멘토님의 커리어 코칭(원티드 6기 인턴십)을 마치며 정리하는 시간을 가져보려고 합니다. 멘토님의 글을 많이 참고한터라 문제가 된다면 삭제할 예정입니다. 🎯 취업목적 요즘 같은 개발자 취업난 시대에 기업들은 좋은 개발자를 뽑기 위해서 코딩테스트를 한다. 기업에서는 감당하기 벅찰 정도로 지원자들이 몰리는 상황이다. 지원자들의 포토폴리오는 각 각 다르기 때문에 자동화 된 코딩 테스트 만큼 짧은 시간에 많은 지원자를 효과적으로 걸러낼 수 있는 방법이 현실적으로 없다고 한다. 좋든 싫든, 코딩 테스트는 현재 업계에서 관행처럼 굳어진 채용 과정 중 일부이기 때문에 개발자로서 코딩테스트를 피하는것이 어려운것이 현실이다. 🎯 시대가 바뀌어서 클라우드, 빅데이터, 인공지능, 블록체.. 2023. 10. 19.