분류 전체보기
예외처리(Exception)에 대한 고찰
예외처리(Exception)에 대한 고찰
2021.07.25예외처리의 필요성 대학을 졸업하고 개발자로 회사에 다니면서 개발하는데 있어 가장 큰 차이점은 예외처리의 유무였다. 어떻게든 기능만 동작하면 끝이었던 대학생때와는 다르게 회사에서는, 기능은 기본이고 안정성과 유지보수성을 고려해야하는데, 이를 위해 필수적으로 해야하는 것이 바로 예외처리였다. 한 기능에 대해서도 정말 많은 예외가 발생할 가능성이 있기 때문에 최소한 발생가능성을 인지하고 있는 모든 예외에 대해서는 예외처리가 필요했다. 에러 vs 예외 발생가능성을 인지하고 있는 모든 예외에 대해 처리가 필요하다고 했는데, 이 예외가 뭔지 알기 위해서는 에러와 예외를 구분할 필요가 있다. 에러 예외 시스템 단계에서 발생 프로그램 로직에서 발생 프로그래머가 관리하지 않음 프로그래가 관리 발생 시 프로세스 중단 발생..
[C#] 컴포지트 패턴 (Composite Pattern)
[C#] 컴포지트 패턴 (Composite Pattern)
2021.07.17Composite 패턴이란? 위키의 내용은 다음과 같다. 컴포지트 패턴(Composite pattern)이란 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴으로, 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. 이 문장만 보면 무슨 의미인지 정확하게 와닿지 않아 이해한 내용을 토대로 문장을 재구성하면 다음과 같다. 컴포지트 패턴(Composite pattern)이란 동일한 타입의 객체(child)들을 관리하는 동일한 타입의 객체(composite)를 생성하여 관리하는 객체를 통해 child 객체들을 접근하는 패턴이다. 컴포지트 패턴을 적용한 구조를 보면 이렇게 나온다. 채널을 보여주는 IChannel 인터페이스가 있다고 할 때 특정 채널을 보여주는 Channel 클래스..
[C#] 널 조건 연산자 (Null-Conditional Operator)
[C#] 널 조건 연산자 (Null-Conditional Operator)
2021.07.04널 조건 연산자란? 널 조건 연산자는 c# 6.0부터 사용가능한 연산자로 변수의 null 체크를 할 수 있는 편리한 기능이다. 기존에는 특정 객체가 null값인 상태로 참조하려 할 때 NullReferenceException이 발생하는 상황을 막기 위해 변수마다 예외처리를 해야만 했다. 하지만 널 조건 연산자를 사용하면 같은 기능을 수행하면서 보다 편리하고 가독성 있는 코드를 작성할 수 있게된다. 널 조건 연산자 사용 방법 사용 방법은 다음과 같다. public string testFunc(string temp) { //temp가 null이라면 null 반환하고 아니라면 Replace 리턴 값 반환합니다. return temp?.Replace("-",""); } 특정 인덱스를 참조하는 경우에도 사용 가능..
[Git] 커밋 (commit) 메세지 잘 쓰는 법 - 2. 7가지 커밋 컨벤션 (commit convention)
[Git] 커밋 (commit) 메세지 잘 쓰는 법 - 2. 7가지 커밋 컨벤션 (commit convention)
2021.06.29참조 : https://chris.beams.io/posts/git-commit/ How to Write a Git Commit Message Commit messages matter. Here's how to write them well. chris.beams.io Git 커밋 메세지를 작성하는 7가지 규칙은 다음과 같다. 1. 내용의 제목과 본문을 한 줄 띄워 구분한다. 2. 제목은 50 characters 이하로 제한한다. 3. 제목의 첫 번째 문자는 대문자로 작성한다. 4. 제목의 마지막에는 마침표를 사용하지 않는다. 5. 제목은 명령문으로 작성한다. 6. 본문은 72 character마다 줄을 바꾼다. 7. 본문의 내용은 "어떻게" 보다 "무엇을" "왜" 인지에 대해 설명한다. 위 7가지 방법을..
[Git] 커밋 (commit) 메세지 잘 쓰는 법 - 1. 커밋 메세지를 잘 작성해야 하는 이유
[Git] 커밋 (commit) 메세지 잘 쓰는 법 - 1. 커밋 메세지를 잘 작성해야 하는 이유
2021.06.20프로그래밍 협업에 있어 필수적인 툴인 git. 이를 사용하여 단순히 변경사항만을 push하는 것은 협업의 의미가 없기때문에 보다 효율적인 협업을 위해서는 커밋 메세지를 효과적으로 작성할 필요가 있다. 이를 위해 git 커밋 메세지 잘 쓰는 방법을 영어로 되어있는 한 포스팅을 보고 추후 참고할 수 있도록 한글로 정리한다. 참조 : https://chris.beams.io/posts/git-commit/ How to Write a Git Commit Message Commit messages matter. Here's how to write them well. chris.beams.io 커밋 메세지를 잘 작성해야 하는 이유 공개되어 있는 임의의 git repository를 보면 커밋 메세지가 엉망인 경우가 ..
[C#] 싱글톤 패턴 (Singleton Pattern)
[C#] 싱글톤 패턴 (Singleton Pattern)
2021.06.12Singleton 패턴이란? 싱글톤 패턴은 런타임 동안 단 하나의 인스턴스만을 생성하는 패턴을 의미한다. 싱글톤 패턴이 적용된 객체는 하나의 인스턴스만 생성할 수 있으며 다른 객체에서 싱글톤 객체의 인슨턴스를 생성하려 할 경우 기존에 생성된 인스턴스가 있다면 해당 인스턴스를 반환하는 형태이다. Singleton 패턴의 장점 싱글톤 패턴의 장점은 다음과 같다. 1. 메모리 절약과 성능향상 만약 많은 클래스에서 동일한 객체의 인스턴스를 생성해야 하는 경우, 싱글톤 패턴을 적용하지 않았다면 사용할때마다 인스턴스가 생성된다. 물론 어지간해서는 인스턴스를 많이 생성했다고 성능이 저하되는 일은 드물지만 프로젝트의 규모가 크거나 성능이 중요시되는 프로젝트에서는 싱글톤 패턴을 사용하면 큰 도움이 된다. 2. 데이터 관..
[C#] 리플렉션 (Reflection)
[C#] 리플렉션 (Reflection)
2021.06.05Reflection 이란? 객체의 클래스 타입, 메서드, 프로퍼티 등의 메타 정보를 런타임 중에 알아내는 기능이다. 알아낸 정보를 통해 메서드를 호출하거나, 특정한 값을 불러오고 새로운 값을 할당할 수도 있다. 해당 정보를 직접 호출하여 원하는 동작을 수행할 수도 있지만 런타임 도중 동적으로 로드하거나 사용해야 하는 경우 주로 사용한다. 또한, 사용하려는 클래스나 메서드가 public이 아닌 경우, 다른 클래스에서 이를 사용할 수 없기 때문에 백도어처럼 사용하기도 한다. Refelction 사용 방법 Assembly.GetType으로 접근하려는 Type 검색 Reflection을 사용하기 위해서는 Assembly.GetType을 통해 접근하고자 하는 클래스의 Type을 찾아야 한다. Type이라는 용어가..