티스토리 뷰

728x90

유튜브 '개발자의품격'을 통해  모인 21명의 초보 개발자들이  ‘초보 개발자를 위한 IT 전문 용어’ 집필 프로젝트의 결과물이라 한다.

Home - THE GREAT

 

Home - THE GREAT

FOR THE NEW DIGITAL WORLD The 기술로 사람-비즈니스-세상을 연결합니다. The Great Creative Studio OpenAI 챗GPT 플러그인 개발 The Great Creative Studio 생성형 AI 응용 서비스 개발 The Great Creative Studio …

thegreat.io

 

 

[ 밑줄/연결 ]

 

(CI/CD, Continuous Integration/ Continuous Deployment/ Continuous Delivery)

 

지속적인 통합과 지속적인 배포로서 개발 생산성을 위해 자동화하는 과정을 말함

 

Github는 소스코드를 버전별로 관리하고 공유하는 공간...

여러 소스코드가 개발되고 이들이 하나로 합쳐지는 오픈 소스 프로젝트.... CI 같은 통합 자동화가 필요함..

 

CI/CD는 개발 프로세스에 많은 시간을 단축해 주고, 개발자들이 온전히 개발에만 집중할 수 있게 함

 

(CI)

 

미리 코드 검사를 진행할 수 있는 테스팅 코드들을 작성해서 코드에 이상이 있는지 확인하는 작업인 디버깅을 진행하고, 실제 소프트웨어를 공급하는 가공물로 만들어 주는 빌드 과정을 자동으로 진행합니다.

 

대표적인 CI 툴은 Jenkins CI, Travis CI, Github Actions 등

 

CI를 진행하려면 어떤 작업을 실행해야 하는지 정의를 해 둔 파이프라인(Pipeline) 파일이 필요함.....

파이프라인은 사람이 직접 해야 했던 모든 과정을 자동으로 처리해 줍니다.

 

(CD)

 

CI로 개발자달이 작성한 코드들을 하나로 묶어 완성된 코드를 사용자에게 자동으로 제공

 

CD는 서버에 하나로 묶은 파일을 올리는 작업을 자동으로 진행함. 언제 어떤 파일을 어디에 올릴지 정의해 두면 특정 작업을 마친 후 자동으로 테스트부터 빌드, 배포까지 진행할 것이고, 개발자는 개발에만 집중할 수 있음

 

 

(빌드)

 

개발자 코드를 사용자가 실행 가능한 하나의 가공물로 생성하는 과정임

빌드를 통해 해당 기계어 파일들을 하나의 파일로 묶어 사용자가 실행 가능한 파일로 만들어 주는 과정....

 

작성한 코드를 퇴근하기 전에 업로드하면 자동으로 테스트를 진행하고, 테스트에 성공하면 빌드 과정을 거쳐 실제 서비스에  Deploy하는 환경을 구축함

 

 

 

(함수형 프로그래밍)

 

명령형 패러다임 : 컴퓨터가 수행할 명령을 순서대로 쭉 나열해서 써 놓은 방식

ex) 피자 만들기: 재료 준비 -> 오픈 예열 -> 반죽 -> 반죽에 소스 바름 -> 토핑 얹음 -> 구움

 

선언형 패러다임 : '무엇'이 필요한지에 초점을 맞춰서 선언형으로 개발하는 방식.

ex) 피자 만들기 : 만들다(피자)

 

선언형 방식으로 프로그래밍하면 코드가 직관적이고 가독성이 좋아짐

함수형 프로그래밍은 이러한 선언형 패러다임을 따르면서 함수의 응용을 강조한 방식

 

함수형 프로그래밍의 근간은 1930년대 개발된 람다 대수

람다 대수는 수학적 추상화와 함수를 적용하여 여러 논리적인 연산을 다루는 학문

 

함수형 프로그래밍 LISP 언어 --> 1980년대 Haskell이라는 순수 함수형 프로그래밍 언어

 

현재 리액트도 과거에는 클래스 기반으로 구현하다가 이제는 함수형 컴포넌트를 사용하고 있음

 

협업을 위해서 가독성 좋은 코드는 선택이 아니라 필수가 되었습니다. 코드의 안정성과 가독성에 좋은 함수형 프로그래밍은 꼭 숙지해야 하는 프로그래밍 패러다임입니다.

 

 

(API :  Application Programming Interface)

 

표준화된 문법과 의사소통 방법을 사용하여 독립적인 시스템(앱과 앱, 서버와 클라이언트, 서버와 데이터베이스 등)간의 데이터 교환 및 상호 작용이 가능하게 하는 기술. 

API는 인터페이스에 속하며, 인터페이스는 각기 다른 시스템이 만나서 커뮤니케이션하는 장소

 

구현 방식을 알 필요가 없다.

API는 특정 기능을 수행하고 결과를 알려 주는데, 그 내부가 어떻게 구현되는지는 사용자 쪽에서 알 필요가 없고 알려고 해도 알 수 없다.

 

설명서가 친절하다.

API호출 방법과 데이터 입출력에 대한 데이터 포맷을 누구나 설명서만 보고도 사용할 수 있도록 문서화가 잘 되어 있어야 한다.

 

서버에서 만든다.

접근 권한이 정해진 API, 사용료를 지급해야 하는 API, 정해진 횟수만 호출하는 API 등 제약이 주는 여러 형태의 API가 있다.

 

 

(프레임워크)

 

소프트웨어 개발에 필수적이고 표준적인 부분을 재사용하도록 제공하는 반제품 성격의 개발 도구

프레임워크를 이용하면 앱이나 솔루션을 빠르고 편리하게 개발할 수 있음

반드시 프레임워크의 사용 규칙을 따라야 함

 

부대찌개 밀크트와 비슷하다고 보면 됨

 

프레임워크는 클래스와 패턴으로 이루어진 반제품 성격의 소프트웨어임

개발자는 프로젝트의 목적과 클라이언트의 요구 사항 등을 고려하여 의도와 목적에 맞는 프레임워크를 선택함

그 후 프레임워크가 정해 둔 규칙에 맞게 코드를 작성함

예를 들어 개발자가 Spring 프레임워크를 선택했다면 MVC패턴을 따라 코딩해야 함

 

개발의 생산성과 효율성을 높이기 위해 코드의 재사용 방법을 고민하는 과정에서 나타난 진화의 산물

 

코드 재사용은 '메소드 --> 객체 --> 컴포넌트 --> 프레임워크' 단위로 발전했음

 

프레임워크가 제공하는 주요 기능으로는 예외 처리, 트랜잭션 처리, 메모리 공유, 데이터 소스 관리, 서비스 관리, 쿼리 서비스, 로깅 서비스, 사용자 인증 서비스 등이 있음

 

프레임워크는 구현을 인터페이스 뒤에 감추는 캡슐화를 통해서 모듈화를 강화함...

 

프레임워크가 제공하는 인터페이스는 여러 앱애서 반본적으로 사용할 수 있는 일반적인 컴포넌트를 정의하게 함으로써 재사용성을 높여 줌

 

프레임워크는 다형성을 통해 앱이 프레임워크의 인터페이스를 확장할 수 있게 함

 

프레임워크의 가장 큰 특징은 제어의 역흐름임. 제어의 역흐름은 개발 제어권을 개발자가 아니라 프레임워크가 가지는 것을 말함....라이브러리는 제어권을 개발자가 가짐..

개발자는 프레임워크가 정한 규칙에 따라 코딩하고, 프레임워크는 개발자가 작성한 코드를 호출함. 

제어의 역흐름 덕분에 개발자는 구현하고자 하는 비즈니스 로직에만 신경 쓸 수 있고, 적절한 코드를 호출하고 동작시키는 것은 프레임워크가 알아서 하게 됨

 

모듈화, 재사용성, 확장성, 제어의 역흐름으로 인해 효율적인 개발이 가능해지고 생산성이 높아지며, 유지보수가 용이해지고 프로그램의 품질이 향상됨

 

프레임워크의 기본적인 사용 방법을 익히는 데도 일정 수준 이상의 시간과 노력이 필요함

 

기본 설계된 구조로 인해 자유로운 개발에 한계가 있음

 

필요 이상의 컴퓨팅 자원이 소모될 수 있음. 프레임워크는 가능한 모든 경우를 고려해서 만들어졌기 때문에 개발자가 구현하려는 기능과 상관없는 라이브러리나 기능들이 포함될 수 있음

 

전자정부 프레임워크(eGoVFrame)은 2021년 12월에 4.0 베타 버전을 공개...

 

 

[ 자평 ]   그냥 뭐..

댓글