목록전체 글 (40)
게임공장
GenServer 란? 클라-서버 관계의 서버 구현 모듈 GenServer 는 다른 Elixir 프로세스와 동일한 프로세스이며 state 를 유지하고 비동기적으로 코드를 실행할 수 있다. GenServer 를 사용해 구현된 서버는 규정된 인터페이스 함수들을 가지고 있으며 에러를 추적하고 리포트할 수 있는 기능을 가지고 있다. Supervision Tree(?) 에 적합함 구현 방법 사용할 기능의 콜백 함수들만 구현하면 됨 Callback 함수들 init/1 초기에 state 에 전달해줄 파라미터를 정의할 수 있다. 필수로 구현되어야 하는 함수 @impl true def init(elements) do initial_state = String.split(elements, ",", trim: true) {:..
migrations 를 되돌릴 수 있다 options -r, --repo - Repo 를 지정한다 --all - 모든 마이그레이션들을 되돌린다 --step / -n - n 개의 마이그레이션들을 되돌린다 --to / -v - 모든 마이그레이션을 해당 버전으로 되돌린다 마이그레이션 리스트 보는법 mix ecto.migrations -r Custom.Repo
일반적으로 사용자가 사용하는 문자나 기호들을 컴퓨터가 인식할 수 있도록 변환해주는 과정 인코딩하는 과정에서 약속된 규칙이 필요한데 이 규칙들의 집합을 Character Set 이라고 함 ASCII, 유니코드 등 유니코드 전세계적으로 사용되는 모든 문자 집합을 하나로 모아 만들어짐 UTF-8, UTF-16 등
파일 탐색기 경로에 아래 경로를 입력 \\wsl$\
echo $PATH | sed 's/:/\n/g'
~/.bash_history 해당 파일에 bash 에서 입력한 명령어들이 쭉 기록되어 있음 하지만 날짜는 기록되어있지 않다.. (날짜도 알고 싶은데) 날짜를 기록하는 방법이 있었다! /etc/profile 파일에 아래 내용을 추가하면 됨 # Add timestamp to .bash_history HISTTIMEFORMAT="%Y-%m-%d_%d_%H:%M:%S " export HISTTIMEFORMAT 굳이 파일을 안 열어보고 history 명령어를 사용해서 볼 수도 있음
[Effective C#] 1. 지역변수를 선언할 때는 var를 사용하는 것이 낫다 정확한 반환 타입을 알지 못한 채 올바르지 않은 타입을 명시적으로 지정하게 되면 득보다 실이 많다 ex) IQueryable 을 IEnumerable 로 명시했을 경우 성능적으로 저하된다 var를 사용하여 암시적으로 변수를 선언한 코드가 더 잘 읽힌다 변수의 의미에 좀 더 집중할 수 있다 개발자가 코드를 읽을 때 변수의 타입을 쉽사리 짐작할 수 없는 경우에는 명시적으로 타입을 기술하는 편이 낫다 내장 숫자 타입(int, float, double 등)을 선언할 때는 명시적으로 선언하는 편이 낫다. 가독성 문제를 유발할 수 있다 var result = someObject.DoSomeWork(anotherParameter); ..
하드웨어를 모두 활용하려면 코드를 동시에 실행시켜야 한다. `Threads` 가 길이 아니라보고 이를 대신할 방법 중 하나가 액터 모델이다. 모델 액터 모델은 동시 연산을 다루기 위한 개념적 모델이다. 시스템의 구성 요소는 서로 상호 작용해야 한다. 이를 사용하는 가장 유명한 언어는 `Erlang`. 액터 메시지를 받고 이를 바탕으로 어떠한 계산을 한다. 객체지향 언어와 동일한 부분이 있다 오브젝트는 메시지를 받고(메서드 호출) 이를 바탕으로 무엇인가 한다. 가장 큰 다른 점은 액터들은 서로 완전히 독립적이고 메모리를 공유하지 않는다. 다른 액터가 직접적으로 변경하지 못하는 상태를 가지고 있다. 액터는 우체통을 가지고 있다. 여러 액터들이 동시에 가동된다고 해도 하나의 액터는 메시지를 순차적으로 처리한다..
원문 : https://overworks.github.io/unity/2019/07/16/null-of-unity-object.html 유니티 오브젝트는 C++로 작성된 네이티브 객체의 래퍼 Object.Destroy()를 사용하면 제거되지만 C#으로 래핑한 유니티 오브젝트는 GC가 수집하기 전까지 살아있다 이 상태를 "fake null" 이라 한다 유니티에서 오버로딩된 ==, != 연산자는 네이티브 객체의 존재 여부까지 판단하여 비용이 많이 든다 void Start() { Stopwatch sw = new Stopwatch(); Transform t = transform; sw.Start(); for (int i = 0; i < 100000000; ++i) { t = transform; } sw.Sto..
원문: Clean Code Explained – A Practical Introduction to Clean Coding for Beginners (freecodecamp.org) 클린 코드 책의 내용 일부를 발췌한 글인듯 변수 네이밍 변수 이름에 의미가 없으면 메모리 주소를 사용하지 왜 변수를 쓰냐 -> 의미있는 변수명을 사용하자 잘못된 정보를 주는 이름을 피하라 노이즈 워드를 피하라 -> 노이즈 워드란 아무런 추가 정보를 가지지 않는 단어들 ex) The, Info, Data, Variable, Object, Manager .. (UserInfo -> User) 발음 가능한 이름으로 정하라??? 검색 가능한 이름으로 정하라 매직 넘버 피하기 한문자 이름 피하기 일관성을 유지하라 fetch, retri..