728x90

Development 29

Rust

Rust는 안전, 성능 및 동시성을 강조하는 것으로 알려진 최신 시스템 프로그래밍 언어입니다. 처음에는 Mozilla Research에서 개발했으며 2010년에 처음 등장했습니다. Rust는 하드웨어에 대한 낮은 수준의 제어와 높은 수준의 추상화를 결합하여 임베디드 시스템에서 웹 서버에 이르기까지 광범위한 응용 프로그램에 적합합니다. 다음은 Rust를 정의하는 몇 가지 주요 기능과 개념입니다. 메모리 안전성: Rust의 가장 눈에 띄는 기능은 메모리 안전성에 중점을 둔 것입니다. null 포인터 역참조, 버퍼 오버플로 및 데이터 경합과 같은 일반적인 버그를 방지하기 위해 엄격한 컴파일 시간 검사를 시행합니다. 소유권 시스템, 차용 및 수명은 컴파일러가 메모리 안전을 보장할 수 있도록 하는 Rust의 핵심..

Development 2023.06.16

Hadoop - 빅데이터 분석 강화

- 개념 오늘날의 데이터 중심 세계에서 조직은 방대한 양의 데이터를 효율적으로 처리하고 분석해야 하는 문제에 직면해 있습니다. 바로 여기서 강력한 오픈 소스 프레임워크인 Hadoop이 역할을 합니다. Hadoop은 빅 데이터를 처리하는 방식을 혁신하여 기업이 방대한 데이터 세트에서 귀중한 통찰력을 추출할 수 있도록 합니다. 이 블로그 게시물에서는 Hadoop의 개념과 빅 데이터 분석 영역에서 Hadoop의 중요성을 살펴보겠습니다. 하둡이란 무엇입니까? Hadoop은 상용 하드웨어 클러스터에서 대규모 데이터 세트를 처리하고 저장하도록 설계된 분산 컴퓨팅 프레임워크입니다. Doug Cutting과 Mike Cafarella가 2005년에 만들었으며 현재 Apache Software Foundation에서 관..

Development 2023.06.15

ORM

ORM은 Object-Relational Mapping의 약자입니다. 객체 지향 프로그래밍 언어와 관계형 데이터베이스 관리 시스템(RDBMS) 간의 데이터 변환 및 매핑을 용이하게 하는데 사용되는 프로그래밍 기술입니다. ORM 프레임워크는 개발자가 객체 지향 패러다임을 사용하여 데이터베이스와 상호 작용할 수 있는 추상화 계층을 제공하므로 복잡한 SQL 쿼리를 작성하고 낮은 수준의 데이터베이스 작업을 수동으로 관리할 필요가 없습니다. 대신 개발자는 데이터베이스 테이블 및 레코드를 나타내는 개체 및 클래스로 작업할 수 있으며 ORM 프레임워크는 이러한 개체를 기본 데이터베이스 구조로 변환하는 작업을 처리합니다. ORM 프레임워크는 일반적으로 다음과 같은 기능을 제공합니다. 개체-관계형 매핑: 개체를 데이터베..

Development 2023.06.14

IT 프로덕트(솔류션) 개발 단계

오랜(?) 개발자 생활을 하던 중, 우연히 프로덕트(솔류션)를 총괄하는 자리로 이직을 하게 되었다. 요즘 고민이 많아졌다. 내가 지금 만들려고 하는, 만들어야 되는 프로덕트는 무엇일까? 과연 프로덕트는 무엇일까? 솔류션은 무엇일까? 책이나 ChatGPT 등을 조사해 보면 아래와 같은 일반적인 프로덕트 매니저들이 생각해야 될 내용들을 검색해 볼 수 있다. 너무나 일반적이라서 내가 이걸 왜 검색을 했을까 하는 생각마저도 든다. 아이디어 도출: 프로덕트 개발은 일반적으로 아이디어나 필요성으로부터 시작됩니다. 이 아이디어는 회사 내부에서 직원들이나 팀원들로부터 나올 수도 있고, 외부에서 고객 요구사항을 조사하거나 시장 조사를 통해 얻을 수도 있습니다. 요구사항 분석: 아이디어가 도출되면 다음으로는 프로덕트의 요..

Development 2023.06.13

객체 지향 패러다임

객체 지향 패러다임은 클래스의 인스턴스인 객체를 중심으로 소프트웨어 설계를 구성하는 프로그래밍 패러다임입니다. 객체 지향 패러다임은 객체 지향 프로그래밍 설계의 원칙 중 캡슐화, 상속 및 다형성의 원칙을 기반으로 합니다. 객체 지향 패러다임에서 클래스는 객체 생성을 위한 청사진 또는 템플릿 역할을 합니다. 해당 클래스의 개체가 소유할 속성(속성)properties(attributes) 및 동작(메서드)behaviors(methods)을 정의합니다. 개체는 클래스의 인스턴스이며 각 개체는 여전히 특정 클래스에 속하면서도 고유한 상태와 동작을 가질 수 있습니다. 캡슐화는 객체 지향 패러다임의 핵심 원칙입니다. 즉, 해당 데이터에서 작동하는 데이터와 메서드가 클래스 내에서 함께 묶인다는 의미입니다. 이는 정보..

Development 2023.06.12

GraphQL

MSA 아키텍처가 인기를 끌고 있고, MSA의 근간이 되는 REST API를 방식으로 지원하는 GraphQL 도입을 하는 경우가 늘고 있다. REST API + ORM + GraphQL를 통해서 생산성을 높이기 위한 노력이 증가하고 있다. GraphQL은 2015년에 페이스북 개발자들이 모바일 어플리케이션을 제작하면서 개발되어 공개된 오픈 소스 쿼리 언어 및 런타임입니다. GraphQL은 기존의 RESTful API에 비해 데이터를 검색하고 조작하는 효율적이고 유연한 방법을 제공합니다. GraphQL을 사용하면 클라이언트는 API에서 필요한 정확한 데이터를 지정할 수 있으며, 서버는 해당 데이터만 응답합니다. 이는 REST API에서 서버가 정의한 고정된 엔드포인트와 데이터 구조로 인해 발생하는 데이터의..

Development 2023.06.10

CI/CD란 무엇인가?

CI/CD는 지속적 통합(Continuous Integration) 및 지속적인 배포(Continuous Deployment)의 약자입니다. CI/CD는 소프트웨어 개발 및 배포 프로세스를 자동화하여 효율성과 속도를 향상시키는 방법입니다. 지속적 통합(CI)은 개발 과정에서 개발자들이 작성한 코드를 자동으로 통합하고 테스트하는 프로세스를 의미합니다. 개발자들이 각자의 코드를 작성한 후, 이를 중앙 저장소에 통합하면 CI 시스템이 해당 코드를 가져와서 자동으로 빌드, 테스트, 분석을 수행합니다. 이를 통해 코드 품질을 유지하고 충돌이나 오류를 조기에 발견할 수 있습니다. 지속적 통합(CI)은 개발자들이 작성한 코드를 정기적으로 통합하고 테스트하는 과정입니다. 일반적으로 개발자들은 각자 독립적으로 코드를 작..

Development 2023.06.02

API란 무엇인가?

API는 "Application Programming Interface"의 약자로, 응용 프로그램 간의 상호 작용을 위한 규약이나 인터페이스를 말합니다. API는 소프트웨어 개발에서 중요한 역할을 합니다. API는 서로 다른 소프트웨어 시스템이 상호 작용할 수 있도록 허용하고, 소프트웨어 컴포넌트 간의 통신을 용이하게 만들어 줍니다. API는 일련의 규칙과 프로토콜을 정의하여, 소프트웨어 개발자가 다른 시스템의 기능을 호출하고 사용할 수 있도록 합니다. API는 다양한 형태로 제공될 수 있습니다. 예를 들어, 웹 API는 웹 응용 프로그램 간의 통신을 위한 인터페이스를 제공하며, 소프트웨어 라이브러리 API는 프로그래밍 언어에서 사용할 수 있는 함수와 클래스를 제공합니다. 또한, 운영 체제 API는 운영..

Development 2023.06.01

MSA 아키텍처

마이크로서비스 아키텍처(MicroService Architecture, MSA)는 소프트웨어 개발에서 매우 유용한 접근 방식 중 하나입니다. 이 아키텍처는 소프트웨어 응용 프로그램을 작은, 독립적인 서비스의 집합으로 구축합니다. 각 마이크로서비스는 특정한 비즈니스 기능을 담당하며, 다른 마이크로서비스와는 잘 정의된 API를 사용하여 통신합니다. 마이크로서비스 아키텍처의 주요 이점 중 하나는 소프트웨어의 지속적인 제공과 배포(CI/CD)를 가능하게 한다는 것입니다. 각 서비스가 독립적이므로, 다른 서비스와 별도로 개발 및 배포할 수 있으며, 더 빠른 릴리스 주기와 전반적인 민첩성이 향상됩니다. 또한, 마이크로서비스는 독립적으로 확장할 수 있으므로 더 큰 효율성과 비용 절감을 가능하게 합니다. 하지만, 마이..

Development 2023.05.31

How to override methods in django

파이썬(Django)에서 함수 재정의 django(python)에서의 메소드 재정의하는 방법은 경우에 따라 다르지만, 공식문서를 확인하는 것이 원칙입니다. 특히 모델의 save() 함수 등과 같이 모델의 경우에는 특히 공식문서를 확인하는 것이 원칙입니다. 일부 메서드에 *args 및 **kwargs가 필요한 이유는 이 것이 "템플릿"(반드시 있어야 하는 것)이 아니라, django가 메서드를 실행할 때 *args 및 **kwargs를 생략할 때 실수로 제외할 수 있는 다른 인수와 키워드 인수를 전달하기 위함입니다. Django의 save() 함수을 보면 기본적으로 전달되는 수많은 키워드 인수가 있습니다. 추상적인 모델의 예를 보자. 이 옵션을 다음으로 재정의하는 경우: class SomeAbstractM..

Development 2021.03.10
반응형
LIST