ved_Rony
article thumbnail
객체지향 프로그래밍(OOP) 이란?
Programming/Dev Architecture 2022. 6. 25. 17:26

- 객체지향 프로그래밍은 우리 주변에서 매우 쉽게 보이는 프로그래밍 방식이기도 하고 대규모 프로젝트 단위에서 자주 쓰이기 때문에, 필수적인 요소가 된지 이미 오래이다. 그렇다면, 객체지향이란 무엇이고, 왜 나왔으며, 어떻게 만들어야 하는 것인가? 알아가보도록 하자. 객체지향이란? - 객체란, 존재하는 모든 것을 의미한다. 흔히 객체(object)란 말을 들으면, 질량을 가진 어떤 것을 떠올리곤 하는 데, 실상은 존재하는 모드것을 칭한다. - 특히, 프로그래밍의 관점에서 본다면 데이터 + 기능 으로 이루어진다. 즉, 변수와 메소드로 이루어진 것이 객체란 것이다. - 이렇게 객체로 묶어진 단위의 프로그래밍을 한다면, 데이터 분산의 위험을 예방하고, 데이터와 기능을 하나로 묶어줄수 있기에 직관적으로 받아들이기..

article thumbnail
스택 계산기

infix에서 postfix방식으로 전환하는 스택 계산기의 예제 infix란 일반 표기번을 의미한다. 1+((a+2)*5)/7) postfix란 후위 표기법으로 1a2 + 5 * 7 /+로 나타 내어 진다. 논리 순서로 보자면, 괄호안의 연산이 밖으로 빠져 나가는 것이다. 1+((a2)+*5)/7) -> 1+((a2)+5)*/7) -> 1+((a2)+5)*7)/ -> 1((a2)+5)*7)/+ -> 마지막으로 괄호를 없앴을 때, 1a2 + 5 * 7 /+로 나타나 진다. 이후, 연산자가 나왔을때, 스택에서 피연산자 두개를 꺼내서 계산후 다시 집어 넣으면 + : a+2 * : (a+2) *5 / : (a+2) * 5 / 7 + : (a+2) * 5/ 7 + 1로 잘 나타난다. 이를 코드로 나타내어 본다면,..

article thumbnail
C#- 비동기 프로그래밍(2) with 예제
Programming/C# 2022. 6. 12. 18:27

비동기 프로그래밍에 대해서 지난글에서 개념적으로 다뤄봤으나, 아직 어떻게 써야할진 애매하다. 유니티에서 예제와 함께 비동기에 대해 더 이해해보려고 한다. 예제로 아침식사를 만든다고 가정해보자. 아침으로 베이컨을 굽고 커피를 따르고 등 먹을게 많다. 할게 많으니 비동기로 아침을 차려서 효율적으로 일처리를 해보자. -예제를 위한 빈 클래스들 -아침 식사를 위한 메소드들 -비동기를 실행 바로 var eggsTask = await FryEggsAsync();해도 되지만, 이 예제를 만든 사람은 실행부분과 끝나는 시점을 구분하기 위해서 나누기 위해서 위와 같이 짠거라 생각한다.(개인 적인 추측) await로 테스트가 끝난 시점을 체크 끝났으면 다음으로 넘어간다. -이렇게 태스크가 여러개일때, 태스크를 리스트로 담..

article thumbnail
C# - 비동기 프로그래밍_asynchronous programming
Programming/C# 2022. 5. 28. 19:30

비동기 프로그래밍이란? CPU를 더욱 효율적으로 사용하기 위한 기술이다. 중앙처리장치는 많은 작업을 요청받고 처리한다. 네트워크 통신을 주고 받거나, 데이터를 읽고 쓰는 등 많은 작업을 매초마다 처리하게 되는데, 이를 현재 입출력 작업이 완료되길 기다리게 하는것은 비효율적이다. 이를 해결하기 위해 비동기 프로그래밍을 사용하며, 입출력을 기다리는 대신, 다른 업무를 처리하게 하며 입출력 작업이 완료되었다는 메세지를 받은뒤 기존 작업을 이어나가는 프로그래밍이다. 그러니, 우리가 비동기 프로그래밍을 사용할때, 쉽게 말해 오래 걸릴것 같은 함수들에 대해서는 비동기로 돌리자는 것이다. 오래 실행되는 함수를 그냥 동기적으로 작성하고, 필요하면 새 스레드나 작업 객체에서 그런 함수를 호출함으로써 동시성을 도입하는 전..

article thumbnail
C# - 구조체(struct)
Programming/C# 2022. 5. 23. 19:48

프로그래밍에는 두가지의 변수 타입이 있다. 값 타입, 참조 타입 -값타입이란? 스택영역에 저장되며, Object를 상속 받는 구조체이다. Object -> ValueType -> (값에 따라 다른 구조) 예)int32 데이터에 직접 값이 저장된다. -참조타입이란? 힙에 저장되고, Object를 상속받고, 해당데이터의 참조 값이 저장된다. 처음 변수를 선언하면 값타입과 달리 메모리를 생성하지 않는다. 값타입을 참조타입 처럼 감싸주는것을 박싱이라고 한다. 스택에 있는 데이터를 힙으로 복사 해오는데, 이과정에서 리소스를 많이 잡아먹는다. int i = 1; object x = i; 이런식.. 이에반해, 언박싱은 박싱과 완전히 반대개념이다. 힙에 있던데이터를 스택으로 복사해오는과정이다. 주의) 선언할 때 is ..

article thumbnail
C# - 델리게이트와 이벤트/ Delegate & Event
Programming/C# 2022. 5. 14. 17:01

델리게이트란? 함수 대행자이다. 어떤 함수들을 델리게이트에 추가 해놓는다면, 그함수들을 실행시켜준다. 델리게이트 선언 -> 델리게이트 추가+=들어갈 함수 -> 델리게이트 실행 이런한 델리게이트로 클래스간의 커플링을 방지 할수 있다 이벤트 사용하지 않는 경우 A라는 함수를 실행시키면 B 함수를 실행 시킬려고 한다. 그렇다면, A를 가지고 있는 클래스는 B에 대해 알고 있어야한다. 즉, A의 클래스에 public X x;으로 선언후, x.B(필요한 매개변수)식으로 사용해야한다. 이벤트를 사용하면 이런 경우를 피할수 있다. 이벤트를 사용 선언 public delegate void [델리게이트 이름](메소드에 들어갈 매개변수) public event [델리게이트][이벤트 이름] 메소드 추가 [이벤트이름](pub..

article thumbnail
GoF - 싱글턴 패턴 Singleton Pattern

싱글턴 패턴이란? 어떤 클래스가 한번만 메모리를 할당(Static)하고, 그 메모리에 인스턴스를 만들어 사용하는 디자인패턴. 즉, 메모리에 단하나의 인스턴스를 할당한 후에 그 인스턴스를 계속 참조하여 사용하는 것. 생성자가 여러차례 호출이 되더라도 생성된 객체 하나만 호출이 된다. 싱글톤 패턴을 쓰는 이유 메모리 낭비를 방지할 수 있음 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용 DBCP(DataBase Connection Pool)처럼 공통된 객체를 여러개 생성해서 사용해야하는 상황에서 많이 사용. (쓰레드풀, 캐시, 대화상자, 사용자 설정, 레지스트리 설정, 로그 기록 ..

검색 태그