프로그래밍 공부/디자인 패턴2024. 2. 29. 03:13싱글톤 패턴 vs 정적 클래스 (Singleton Pattern vs Static Class)

싱글톤 패턴을 사용한 클래스와 정적 클래스 전부 프로그램 상에서 단 하나만 존재하는 클래스 이다. 싱글톤 패턴을 처음 배울 당시에는 "그냥 Static을 사용하면 되는거 아니야?" 라는 생각을 했었는데 찾아 보지 못하고 이제서야 정리를 해보게 되었다. 싱글톤 패턴? 클래스의 인스턴스가 프로그램 전체에 걸쳐 단 하나만 존재하도록 보장하는 구조 예를들어 현재 유저의 경험치와 같은 중요한 부분이 여러 객체에서 동시에 관리가 된다면, 어떤 객체에 있는 경험치가 유저의 진짜 경험치인지 알 수가 없기 때문에 여러부분에서 문제가 발생한다. 이런 부분은 싱글톤 패턴으로 구현하여 경험치를 관리하는 클래스는 단 하나의 객체만 존재하도록 해야한다. 정적 클래스로는 불가능 한가? 곰곰히 생각해보면 정적 클래스도 같은 역할을 ..

[C#] 강력한 데이터 작업 Linq(링큐)
프로그래밍 공부/C# 프로그래밍2023. 9. 24. 01:39[C#] 강력한 데이터 작업 Linq(링큐)

공부하면서 처음에는 아무것도 모르고 넘겼던.. 링큐.. 만들다보면 링큐는 작업을 간단하고 쉽게 도와준다. 최대값이나 정렬을 할때 가끔 사용했었는데, 이제서야 책을보고 조금 공부해 보았다. 링큐 링큐는 Language Intergrated Query의 약어로 , C# 언어에 통합된 데이터 질의 기능을 말한다. 질의라는 것이 좀 어색하긴한데, 데이터에 대해 물어본다는 뜻이다. 링큐의 기본적인 3가지 키워드를 소개한다. - From : 어떤 데이터 집합에서 데이터를 찾을 것인가? - Where : 어떤 조건의 데이터를 찾을 것인가? - Select : 어떤 값을 추출 할 것인가? 이정도로 생각하면 좋을 것 같다. 바로 예시를 들어보자. 별점 3점 이상의 영상만 가져오는 법 나는 여러개의 영화 데이터 중에 별점..

[C#] 여러개의 Enum - [Flags] Attribute
프로그래밍 공부/C# 프로그래밍2023. 9. 24. 00:45[C#] 여러개의 Enum - [Flags] Attribute

우리는 Enum 타입으로 여러가지 상태나 상황을 정할 수 있다. Enum을 조금 더 효과적으로 사용하기 위한 Flags 애트리뷰트를 공부해봤다. Flags Flags는 Enum타입에 사용되는 애트리뷰트이고, 열거형 멤버들이 비트 플래그로 사용될 수 있음을 나타낸다. 메모리가 중요했던 옛날에는 기껏해야 10개도 안되는 상태를 표현하려고 한 바이트(2^8 = 0~255)를 사용한다는게 낭비라고 생각이 됐을 수도 있다. 물론 지금은 메모리가 풍족해진 상황이지만, 비트 플래그가 갖는 장점도 있기 때문에 C#에서도 사용이 가능하게끔 구현을 해둔 것 같다. 선언 Enum 상단에 [Flags]라는 애트리뷰트를 선언해주면 된다. 그리고 Enum의 멤버들은 10진수로 적어줘도 상관없지만, 2의 제곱수로 적어주어야 한다...

[독후감] 하버드 상위 1퍼센트의 비밀
독후감같은 독서일기2023. 9. 1. 00:33[독후감] 하버드 상위 1퍼센트의 비밀

1~2달 전, 20분 남은 버스를 기다리며 너무 더워서 들어간 알라딘 중고매장에서 제목에 어그로가 끌려 구매했던 책이다. '하버드 상위 1퍼센트의 비밀' 이라니 그냥 사짜냄새가 난다고 해야하나.. 암튼 그냥 웃겨서 구매 했었다. 언젠가 읽겠지 하고.. 시간이 조금 흘러 꽤나 많은 일들이 생기고, 새로운 직장을 구해서 일주일정도 시간이 남았을때 문득 이 책이 떠올랐다. 하버드 상위 1퍼센트의 비밀이 뭘까 너무 궁금해서 1시간 30분 정도 걸리는 본가로 가는 길에 푹 빠져서 읽었다. 요약하자면, 이 책은 처음부터 끝까지 부정적인 신호의 차단과 자신의 관심사에 대한 몰입을 강조한다. 무엇을 하더라도 부정적인 신호를 받았을때 그 결과가 좋지 않다는 것이다. 예를들면 내가 나 자신에게 보내는 부정적인 신호로는 '..

[Unity] Canvas - RenderMode & Scaler
게임 엔진/Unity2023. 8. 4. 22:32[Unity] Canvas - RenderMode & Scaler

유니티 캔버스 렌더 모드 Screen Space - Overlay - Canvas가 화면 위에 떠 있으며, 다른 UI요소나 게임 객체와 상호작용하지 않음 - 가장 간단한 렌더 모드. UI를 화면 상에 고정시키고자 할 때 주로 사용 - UI 요소들은 화면의 픽셀 단위로 렌더링, 카메라의 월드 위치와 관계 없이 항상 화면 상에 표시됨 Screen Space - Camera - Canvas가 특정 카메라에 렌더링 되며, 카메라와의 거리 및 관점에 따라 UI의 크기가 달라질 수 있음 - 일반적으로 UI가 3D 게임세계와 상호작용해야 할 때 사용됨 - 캔버스가 카메라의 ViewPort 크기에 맞춰서 크기가 조정되고, 카메라에 따라 월드 공간의 위치를 가질 수 있음 World Space -캔버스가 월드 공간에서 다..

[Unity 잡학사전] Unity UI 시스템 성능 최적화
게임 엔진/Unity2023. 8. 4. 21:47[Unity 잡학사전] Unity UI 시스템 성능 최적화

유니티 UI에 대해서 많이 무지한거 같아서.. 일단 최적화에 대해 올해 3월에 방송한 내용을 보고 정리를 해봤다. 처음듣고 신기한 내용들이 많았던 영상이다. 보지 않으신 분들은 한번쯤은 보는것을 추천드린다. https://www.youtube.com/live/1e2mSCS7o1A?feature=share 미리 말하자면 이번 강의는 Screen Space - Overlay 일때의 기준이다. UI 관련 유니티 소스코드 이 사진에서 보이듯이 유니티는 엔진 내부는 C++ 로 구현이 되어있다. 이 부분은 오픈소스가 아니기 때문에 일반 사용자들은 볼 수 없지만, 유니티와 기술지원 협약이 맺어져있는 회사들은 내부 코드를 볼 수있다고 한다. 그리고 나머지 코딩으로 접근 가능한 부분들이 C#으로 구현이 되어있는데, 이 ..

image