728x90
반응형

개발_프로그래밍 36

클린 아키텍처 - 4장. 구조적 프로그래밍 Structured Programming

■ 4장 구조적 프로그래밍 Structured Programming 네덜란드 태생의 데이크스트라 Edsger Wybe Dijkstra 는 1950~60년대에 goto 문장의 폐단과 반대로 goto의 좋은 사용 방식이 if/then/else, do/while과 같은 분기와 반복이라는 단순한 제어 구조에 해당한다는 사실을 발견했다. 또한 이 시기에 모든 프로그램은 순차, 분기, 반복 이라는 세 가지 구조만으로 표현할 수 있다는 것이 사실로 증명되었다. 구조적 프로그래밍이 현재까지 가치있는 것은 프로그래밍에서 반증 가능한 단위를 만들어 낼 수 있는 능력 때문이다. 현대 언어가 아무 제약없는 goto 문을 지원하지 않는 이유이기도 하다. 또한 아키텍처 관점에서는 기능적 분해를 최고의 실천법 중 하나로 여기는 이..

클린 아키텍처 - 3장. 패러다임 개요

◆ Part 2 벽돌부터 시작하기: 프로그래밍 패러다임 Starting with the Bricks: Programming Paradigms 여기서 벽돌은 소스코드를 말한다. 집을 짓을 때 기초가 되는 재료가 벽돌이듯이 소프트웨어 개발의 기초인 코드부터 이야기를 시작한다는 말이다. ■ 3장 패러다임 개요 Paradigm Overview 수십 년 간 프로그래밍 패러다임에 혁신적인 변화가 몰아쳤는데 대체로 언어에는 독립적이다. 패러다임은 어떤 프로그래밍 구조를 사용할지, 언제 사용할지를 결정하는 것으로 현재까지는 3가지 외에는 존재하지 않는다. - 구조적 프로그래밍 Structured programming - 객체지향 프로그래밍 Object-oriented programming - 함수형 프로그래밍 Func..

클린 아키텍처 - 2장. 두 가지 가치에 대한 이야기

■ 2장 두 가지 가치에 대한 이야기 여기서 두 가지 가치란 행위 behavior 와 구조 structure 이다. 행위는 개발자가 코드를 작성하고 디버깅하는 것을 말하며 보통 프로그래머는 이 활동이 자신의 일의 전부라고 생각하지만 틀린 생각이다. 소프트웨어는 말 그대로 soft 하기 때문에 변경이 자주 발생한다. 이러한 변경사항을 적용하는 데 드는 어려움은 변경되는 범위 scope 에 비례해야 하며 형태 shape 와는 관련이 없어야 한다. 새로운 요구사항이 발생할 때마다 적용하는 것이 더 힘들어지는데, 이것은 시스템의 형태와 요구사항의 형태가 서로 맞지 않기 때문이다. 개발자는 사각형 마개를 동그란 구멍에 밀어 넣도록 강요하는 느낌(다른 형태에 억지로 넣는 느낌)을 받는다. 여기서 중요한 것이 아키텍..

클린 아키텍처 - 1장. 설계와 아키텍처란?

클린 아키텍처 Clean Architecture Robert C. Martin ◆ Part 1 소개 프로그램이 동작하도록 만드는 것은 그리 어렵지 않지만 제대로 만드는 것은 어려운 일이다. 제대로 된 소프트웨어를 만들면 유지보수에 적은 인력만이 필요하고 변경 또한 단순하고 빨라진다. 결함은 적어지고 유연성은 최대화된다. ■ 1장 설계와 아키텍처란? What Is Design and Architecture? 설계 design 와 아키텍처 architecture 는 사실 아무 차이가 없다(고 저자는 주장한다). 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 주로 사용하고, 설계는 저수준의 구조 및 결정사항을 의미할 때가 많다. 아키텍트가 하는 일을 보면 이 둘을 구분하는 것은 무의미하다..

클린 애자일 - Back to Basics

클린 애자일 : 새로운 세대를 위한 애자일 가치와 실천 ​ 2001년, 애자일 선언을 발표했던 당시 17명 중 한 명인 로버트 C. 마틴(Robert Cecil Martin)의 저서로 애자일 선언 이후 변질 혹은 다르게 흘러왔던 최초의 애자일 개념을 다시 상기하고 기본으로 돌아가자는 취지의 내용이다. ​ 1장 애자일 소개 애자일의 역사 스노버드 애자일 개요 삶의 순환 ​ 2장 왜 애자일인가 직업의식 당연한 기대 권리 장전 ​ 3장 비즈니스 실천 방법 계획 세우기 작은 릴리스 인수 테스트 전체 팀 ​ 사업부서와 개발부서 사이의 불화를 치유하는 것이 애자일 선언 당시의 목표라고 당시 켄트 벡이 말했다고 한다. 이 목표를 달성하는 데에 비즈니스 실천 방법이 필요하다. 이를 통해 사업부서와 개발부서 간 의소소통..

개발자로 성장하기 위한 로드맵 (Frontend, Backend, DevOps, React, Angular, Python, Android, Java, DBA 등)

개발자가 공부해야 하는 로드맵을 각 개발 영역별로 비주얼하게 보여주는 사이트가 있다. github에서 관리하는 컨텐츠로 아래에 있는 github 페이지와 그 아래 roadmap 사이트는 결국 같은 사이트이다. https://github.com/kamranahmedse/developer-roadmap https://roadmap.sh/ Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, lea..

반응형