전체 글
-
C# Singleton Pattern(구현 방법, 각각의 장단점, 적합한 환경)공부/C# 2023. 10. 7. 12:27
최근 Unity로 간단한 RPG게임을 만들어보면 게임의 메인 흐름을 관리하는 Managers Class를 구현했습니다. 이 Class는 게임의 상태를 관리하고, UI, 네트워크, 사운드, Scene 관리 등의 기능을 수행합니다. Unity에서 Managers Class를 구현할 때 메모리 관리, 속도 향상, 데이터 공유, 객체 생성 제한 등의 이유로 Singleton 패턴을 사용했습니다. Singleton 패턴을 구현하면서 적절한 방법을 채택하고 주의해야할 점을 알기위해 해당 글을 작성하게 되었습니다. 1. Singleton 패턴의 다양한 구현 방법 Lazy Initialization (게으른 초기화): 이 방법은 Singleton 인스턴스가 필요할 때까지 초기화를 연기합니다. 이 방법은 런타임 오버헤드..
-
자주 사용되는! HTTP 상태 코드공부/Django 2020. 11. 13. 17:34
상태 코드는 세 자리 숫자로 이루어져 있습니다. _ _ _ 첫 번째 숫자 : HTTP 응답의 종류 나머지 숫자 : 세부적인 응답 내용 첫 번째 숫자 메소드명 의미 1XX Informational 2XX Success 3XX Redirection 4XX Client Error 5XX Server Error 두 번째 숫자 : 자주 사용되는 상태 코드 위주로 2XX 200 OK 서버가 요청을 성공적으로 처리했다. 201 Created 요청이 처리되어서 새로운 리소스가 생성되었다. 202 Accepted 요청은 접수했지만 처리가 완료되지 않았다. 3XX 301 Moved Permanently 지정한 리소스가 새로운 URI로 이동했다. 303 See Other 다른 위치로 요청하라. 307 Temporary Re..
-
[C++] Dynamin Binding <Virtual Function, Virtual Destructor>공부/C++ 2020. 11. 6. 19:48
상속개념을 도입하면서 유용하게 사용할 수 있는 동적바인딩!! 우선 Binding(바인딩)이란? 프로그램 구성 요소의 성격을 결정해주는 것 예를 들면 변수의 데이터 타입을 결정하는 것이 있어요. 그렇다면 동적 바인딩이란?? Dynamic! 즉 실행시간에 구성요소의 성격이 결정되는 것 C++ 에서 Dynamic Binding을 사용하려면??? 1. virtual 부모 클래스의 멤버함수에 가상함수를 생성해요 2. variable type, value type 부모클래스 포인터 또는 레퍼런스 타입을 변수 타입으로! child클래스의 객체를 값으로! 예시 코드를 보면서 이해해봐요😎 class Person { public: virtual void talk() {cout
-
[객체지향프로그래밍] 응집도(Cohesion)와 결합도(Coupling)공부/C++ 2020. 11. 3. 17:56
살짝 비스무리한 느낌에 헷갈리는 두 용어! 딱 한 문장으로 정리하면? HIGH Cohesion Loose Coupling 응집도, Cohesion 하나의 모듈안에서 관련성 있게, 끈끈하게 응집되어 있는 정도를 말해요. 즉, 응집도가 낮다는 말은 모듈안에 관련이 없는 구현들이 잔뜩 있는 것을 말합니다! 결합도, Coupling 여러 모듈이 의존하고 있는 정도를 말해요. 서로서로 결합이 되어 있을 수록 의존도가 높겠죠? 이러한 경우에는 코드를 재사용하기 번거롭습니다. HIGH Cohesion Loose Coupling !
-
[Git] Fork를 사용해보자!공부/Git 2020. 9. 5. 03:18
지금까지 나의 레포가 아닌 팀장의 레포에서 푸쉬, 풀하는 방식으로 깃헙을 사용했습니다. 좀 더 큰 규모의 협업을 하게되니 깃헙의 필요성이 절실하게 느껴졌어요...!😣 기왕이면 자신의 레포에서 Fork, pull request를 하려고 했는데 삐그덕삐그덕 시행착오를 몇 주 겪고 얻은 사용법을 정리합니다. 1. Fork 해오기🍴 가장 먼저 original repository에서 Fork 합니다. 2. Fork한 repository 연결하기📡 git clone git remote add upstream 확인은 git remote -v git fetch upsteam git chechout -b feature/seungah 확인은 git branch 3. 작업물 Commit 🎇 git add . git stat..
-
[정말정말 궁금했던] ! [rejected] master -> master (fetch first)공부/Git 2020. 8. 11. 14:22
git을 본격적으로 사용하기 시작할 때부터 아주 종종 봐왔던 push 거절!!!!!! 왜 거절당하는 지 모르고 일단 강제 푸시면 바로 해결된다며 명령어를 치곤했어요. git push origin +master 어제하던 과제를 이어하려는데 어김없이 또 거절당했습니다..ㅎ.. 도대체 왜 일까요?🤔 궁금해졌어요!!! 일단 노란 hint부터 읽어봤습니다...! 원인 Git의 원격 저장소와 현재 로컬 저장소가 동기화되어있지 않기 때문. git push origin +master 변경 내용만 push되는 것이 아니라 소스 전체가 다시 push 된다. 기존 데이터를 보장하지 못할 수 있다! 호에에에에ㅔㅇㄱ!!! 해결 : 저장소 동기화 git pull --rebase master
-
[Python] 가상환경에 pip 설치한 패키지 제거공부/Python 2020. 8. 6. 00:02
search 기능을 구현하던 중 아래 import 코드를 추가하면 에러가 발생했다. from rest_framework.filters import SearchFilter 가상환경 venv에 설치되어 있는 rest_framework의 filters.py에 들어가서 소스코드를 흝어봐도 무엇이 문제인지 감이 오지 않았다. 생각해 보니 github에 가상환경빼고 push하고 clone해서 새로운 가상환경에서 개발했던 것이 떠올랐다. 그러면 개발 도중 가상환경에 설치된 패키지를 삭제했다가 설치해도 괜찮겠구나! 깨달았당.😮 설치한 패키지 제거 pip uninstall 재설치 pip install 성공 >_^