Software Engineering7 MSA(Microservices Architecture) 마이크로서비스 아키텍처는 애플리케이션을 작고 독립적인 서비스들로 분리하여 개발하고 배포하는 소프트웨어 아키텍처 스타일이다. 각 서비스는 특정 비즈니스 기능을 수행하며, 다른 서비스와 독립적으로 개발, 배포, 확장될 수 있다. 단일 애플리케이션을 여러 작은 단위로 쪼갠 형태로, 이러한 작은 서비스들은 서로 통신하면서 전체 애플리케이션을 구성한다. 전통적인 단일체 구조(모놀리틱 아키텍처)와 대조되는 방식이다. ㅇ 특징독립적인 서비스애플리케이션이 여러 독립 서비스로 나누어진다. 각각의 서비스는 특정 비즈니스 도메인에 대한 기능을 수행하며 다른 서비스와 독립적으로 운영될 수 있다.작은 단위의 개발과 배포각 서비스는 별도의 코드 베이스를 가지고 있어, 독립적인 개발, 빌드, 배포가 가능하다. 이를 통해 특정 서비.. 2024. 10. 23. Third Party IT 분야에서 써드 파티란 원래 시스템이나 플랫폼을 개발한 회사가 아닌 외부의 개발자나 회사가 제공하는 소프트웨어, 서비스, 하드웨어 또는 솔루션을 의미한다.(외부생산자) 원래 시스템에 추가적인 기능을 더하거나 그 시스템과 상호작용할 수 있게 해주는 중요한 역할을 한다. 써드 파티 소프트웨어운영체제나 주요 소프트웨어 플랫폼 위에서 실행되는 외부 회사가 만든 응용 프로그램을 의미한다.브라우저 플러그인크롬이나 파이어폭스에서 사용되는 광고차단 플러그인모바일 애플리케이션IOS 또는 안드로이느 기기에 설치되는 다양한 앱 써드 파티 라이브러리 및 API개발자가 자신의 애플리케이션에 기능을 추가하기 위해 사용하는 외부 모듈라이브러리개발자가 재사용할 수 있도록 패키징된 코드 모음java에서 흔히 사용하는 hiberna.. 2024. 10. 23. DevOps 데브옵스는 개발(Development)과 운영(Operation)의 합성어로 소프트웨어 개발자와 IT 운영 팀 간의 협업과 통합을 촉진하는 문화, 철학 그리고 일련의 실천 방법을 말한다. 소프트웨어 제품과 서비스를 더 빠르고 안정적으로 제공하여 비즈니스 가치를 극대화하는 것이 목표다. ㅇ 배경과 필요성개발과 운영 간의 격차전통적으로 개발 팀은 새로운 기능과 변경 사항을 빠르게 구현하는데 집중하고 운영 팀은 시스템의 안정성과 가용성을 유지하는데 집중했다. 이로 인해 두 팀의 목표 충돌이 발생 협업이 어려워졋다.시장 경쟁 심화혁신과 빠른 시장 변화로 인해 기업은 더 짧은 주기로 제품과 서비스를 제공해야하는 압박을 받는다.애자일 방법론의 확장애자일 방법론이 인기를 얻으면서 개발 속도는 빨라졌지만, 운영 프로.. 2024. 10. 23. OOP 객체 지향 프로그래밍(Object-Oriented Programming) 객체 지향 프로그래밍(OOP)은 프로그램을 객체라는 단위로 구성하여 소프트웨어를 개발하는 프로그래밍 패러다임입니다. 객체는 데이터(속성)와 이를 조작하는 함수(메서드)를 하나로 묶은 독립적인 단위로, 현실 세계의 개념을 프로그래밍에 적용합니다. ㅇ 핵심 개념추상화(Abstraction)복잡한 시스템에서 필요한 핵심적인 부분만을 모델링하여 표현하는 것불필요한 세부사항을 감추고 중요한 정보에 집중하여 코드의 복잡성을 줄인다.캡슐화(Encapsulation)데이터와 메서드를 하나로 묶고 외부로부터 직접적인 접근을 제한하는 것데이터의 무결성을 보호하고 객체 간 의존성을 낮춘다.private으로 변수에 직접접근을 막고 메서드를 통해서 조작한다.상속(Inheritance)기존 클래스의 속성과 메서드를 새로운 클래스.. 2024. 10. 23. 애자일(Agile) 방법론 애자일은 기민함, 날렵함이라는 뜻으로 좋은 것을 빠르게 취하고 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다.앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해나가는 프로세스 모델 방식이다. ㅇ 진행과정계획 > 설계(디자인) > 개발(발전) > 테스트 > 검토(피드백)의 순서로 반복적으로 진행된다. 진행 후 분석, 시험, 피드백을 통해 개선해나가는 진행 모델이다. 계획 및 분석고객가 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계설계(디자인)기획의도와 맞는 설계 및 디자인 추가 및 수정하는 단.. 2024. 10. 23. TDD(Test-Driven Development) 테스트 주도 개발은 소프트웨어 개발 방법론 중 하나로, 실제 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 방식이다. 이 접근법은 작은 단위의 테스트를 작성하고, 그 테스트를 통과하기 위한 최소한의 코드를 구현하는 과정을 반복한다.이를 통해 요구사항을 명확히 하고, 코드 품질을 향상시키며, 버그를 조기에 발견할 수 있다. ㅇ 기본 사이클 TDD는 다음과 같은 세 가지 단계를 반복하는 짧은 개발 사이클을 따른다.Red 단계실패하는 테스트를 작성한다. 아직 기능이 구현되지 않았기에 테스트는 실패해야 한다.Green 단계테스트 통과를 위한 최소한의 코드를 작성한다. 완벽한 구현보다 테스트 통과에 초점을 맞춘다.Refactor 단계코드와 테스트를 리팩토링하여 품질을 개선한다. 중복 제거, 가독성 높이기 등 .. 2024. 10. 23. 클린코드 & 시큐어 코드 & 리팩토링 ㅇ 클린코드코드를 작성하는 의도와 목적이 명확하며, 다른 사람이 쉽게 읽을 수 있어야 한다.가독성이 높은 코드** 가독성을 높이려면네이밍이 잘 되어야 한다.오류가 없어야 한다.중복이 없어야 한다.의존성을 최대한 줄여야 한다.클래스 혹은 메서드가 하나의 일만 처리한다.클린코드를 만들기 위한 규칙네이밍변수, 클래스, 메서드의 의도가 분명한 이름을 사용한다.잘못된 정보를 전달할 수 있는 이름은 사용하지 않는다.범용적으로 사용되는 단어X연속된 숫자나 불용어를 덧붙이는 방식은 피한다.주석 달기코드를 읽는 사람이 코드를 작성한 사람만큼 잘 이해할 수 있도록 도와야한다.반드시 달아야 할 이유가 있는 경우에만 작성한다.빠르게 유추할 수 있는 코드에는 사용하지 않는다.꾸미기보기좋게 배치하고 꾸민다. 보기 좋은 코드가 읽.. 2024. 10. 23. 이전 1 다음