분류 전체보기
-
Branch 전략에 대해서카테고리 없음 2023. 11. 7. 12:20
Branch 전략에 대해서 알아보자 Branch 전략이란? - Git Branch 전략이란, 말 그대로 Git Branch들에 전략, 즉 규칙을 부여하는 것 각 Branch는 어떤 Branch를 생성할지, 어디에서 생성할지 (분기할지), 어디로 병합할지 각 Branch에 규칙을 정해놓고 지키면서 개발하는 것 많이 쓰이는 Branch 전략에는 Git Flow, Github Flow가 있다. 1. Git Flow 위의 그림은 Git Flow 브랜치 전략을 설명한 그림이다. 처음 그림을 봤을 때는 복잡해 보이지만 실상 알고보면 크게 별거 없다 (아마?) main 브랜치: main (또는 master) 브랜치는 안정된 배포 버전 develop 브랜치: 개발 중인 기능들을 통합하는 중간 브랜치 feature 브랜..
-
[DataBase] 트랜잭션에 대하여CS/DataBase 2023. 10. 23. 13:38
1. 트랜잭션이란? 데이터베이스 관리 시스템(DBMS)에서 사용되는 개념으로, 어떤 작업이 원자적으로 수행되어야 하는 데이터 처리 단위 2. 트랜잭션의 용도 데이터 무결성 유지: 트랜잭션은 데이터베이스의 무결성을 보장하며, 잘못된 데이터 입력 또는 시스템 오류로부터 데이터를 보호 동시성 제어: 여러 사용자가 동시에 데이터베이스에 접근할 때 트랜잭션은 데이터베이스에 대한 접근을 조절하고 충돌을 방지 비즈니스 프로세스의 원자성 보장: 여러 단계로 이루어진 비즈니스 프로세스에서 중간 단계에서 오류가 발생하더라도 트랜잭션 롤백을 통해 전체 프로세스를 안전하게 복구 3. 트랜잭션의 특징 (ACID) 원자성 (Atomicity): 원자성은 트랜잭션이 원자적인 작업 단위로 간주되어야 함을 의미합니다. 트랜잭션 내의 ..
-
오픈소스 컨트리뷰션 아카데미 2023 후기카테고리 없음 2023. 10. 19. 14:07
1. 지원 동기 개발을 진행하다 보면 오픈소스를 사용하는 경우가 생긴다. 이런 오픈소스들이 어떻게 관리되고, 어떻게 개발되어 나가는지 궁금했고 검색하던 와중에 오픈소스 컨트리뷰션 아카데미의 존재에 대해 알게 되었다. 이게 아마 연초인데 꾸준히 지켜보고 있다가 2023년도 오픈소스 컨트리뷰션 아카데미 지원공고가 뜨자마자 지원했다. 2. Azure Function OpenAPI Extension 다양한 오픈소스 팀들이 참여했는데, 나는 그 중에 Azure Function OpenAPI Extension 팀에 지원해 참가했다. 흥미롭고 재밌어 보이는 프로젝트들이 많아서 많은 고민을 했지만, Cloud에도 관심이 있었고 C#으로 진행되는 프로젝트라는 점이 좋아보였다. 그리고 그 때 당시 한창 디자인패턴에 관심이..
-
[Cloud] Azure Function, Azure Function OpenAPI Extension이란?카테고리 없음 2023. 10. 19. 13:28
2023 오픈소스 컨트리뷰션 아카데미에 참가신청할 때 Azure Function OpenAPI Extension이 정확히 무엇인지 찾기 힘들었던 기억이 떠올라 간단히 정리해둡니다. 1. Azure Function이란? Azure Function은 Microsoft Azure 클라우드 플랫폼에서 제공되는 서버리스 컴퓨팅 서비스로, 코드를 실행하고 이벤트 기반 애플리케이션을 구축하는 환경을 제공하는 서비스입니다. => Azure Cloud 기반으로 실행 가능한 간단한 코드/ 함수 => 데이터 처리, 시스템 통합, IoT 작업, 간단한 api 개발에 사용 가능! => C#, Java, JavaScript, Python 2. Azure Function OpenAPI Extension이란? 이러한 Azure Fu..
-
[OCA] Azure Function OpenAPI Issue #485카테고리 없음 2023. 9. 20. 14:36
Challengers 기간이 끝나고, Masters 기간에 들어서면서 팀을 이루어 Issue를 맡아 해결해보는 과정을 진행했습니다. 1. 이슈 파악 https://github.com/Azure/azure-functions-openapi-extension/issues/485 New feature: `JsonSerializerSettings` or `NamingStrategy` to be injectable · Issue #485 · Azure/azure-functions-openapi-extens Currently, both JsonSerializerSettings and NamingStrategy are not injectable. It should be injectable by devs. github...
-
[Database] 정규화CS/DataBase 2023. 9. 5. 18:38
데이터베이스에서 중요하게 쓰이는 개념인 정규화에 대해 정리하려고 합니다. 정규화 : 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 여기서 이상현상이 무엇인가? => 3가지의 이상현상이 있다. 삽입 이상(Insertion Anomaly) : 튜플 삽입 시 특정 속성에 해당하는 값이 없어 NULL을 입력해야 하는 현상 삭제 이상(Deletion Anomaly) : 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상 갱신 이상(Update Anomaly) : 튜플 갱신 시 중복된 데이터의 일부만 갱신되어 일어나는 데이터 불일치 현상 정규화..
-
[디자인 패턴][행위 패턴] - 비지터 패턴CS/디자인패턴 2023. 8. 18. 18:08
1. Visitor 패턴 데이터 구조와 연산을 분리하여 새로운 연산을 추가하거나 변경하기 쉬운 구조를 만드는데 사용하는 패턴 데이터 구조의 클래스와 새로운 연산을 수행하는 클래스 간의 결합도를 낮추는 데에 유용 사용하는 경우 새로운 연산 추가: 클래스 계층 구조에 있는 여러 객체들에 대해 새로운 연산을 추가해야 할 때, 해당 객체 클래스들을 수정하지 않고도 새로운 연산을 구현 가능 => "개방/폐쇄 원칙"을 준수하여 시스템의 확장성을 높임 비슷한 동작을 하는 다양한 클래스: 다양한 클래스에 비슷한 동작을 적용해야 할 때, 이를 반복적으로 구현하지 않고 방문자 패턴을 사용하여 효율적으로 구현 비즈니스 로직 분리: 비즈니스 로직과 연산을 분리하여 유지 보수성과 가독성을 높일 수 있음 다형성을 활용한 작업: ..
-
[디자인 패턴][구조 패턴] - 프록시 패턴CS/디자인패턴 2023. 8. 18. 09:55
1. 프록시 패턴 다른 객체에 대한 대리자 또는 대변자 역할을 수행하는 패턴 다양한 형태가 있지만, 가상 프록시, 보호 프록시가 대표적이다. 사용하는 경우 원본 객체에 대한 접근을 제어해야 할 때 원본 객체의 생성 및 소멸에 대한 추가적인 기능을 제공해야 할 때 원본 객체의 메서드 호출 전후에 추가적인 로직을 수행해야 할 때 원본 객체의 접근을 제어하거나 보안을 강화해야 할 때 구현 방법 실제 주체 (Real Subject): 프록시가 대리하는 실제 객체 실제 작업을 수행하거나 수행할 수 있는 실제 비즈니스 로직이 구현 프록시가 생성되거나 사용되는 시점에 실제 객체가 생성되고 초기화될 수 있음 프록시 (Proxy): 실제 주체에 대한 대리자 역할 실제 객체의 생성과 초기화를 지연시키거나, 접근 제어와 보..