본문 바로가기

static의 올바른 이해 프로그래밍에서 자주 변하지 않는 일정한 값이나 설정 정보 같은 공용자원에 대한 접근에 있어서 매번 메모리에 로딩하거나 값을 읽어들이는 것보다 일종의 '전역변수'와 같은 개념을 통해 접근하는 것이 비용도 줄이고, 효율도 높일 수 있다. 자바에는 이런 전역변수 형태의 접근을 가능하게 만들어 주는 static(정적) 이라는 키워드가 있다. 클래스의 변수나 메소드를 static으로 선언하면 그 변수는 객체의 변수가 아니라 클래스 변수가 된다. 클래스 변수이므로 어떠한 객체라도 동일한 주소로 참조하게 된다. 일반적으로 클래스의 변수나 메소드는 해당 클래스가 인스턴스화 되기 전에는 사용할 수 없는데, static 으로 선언된 변수나 메소드는 해당 클래스의 인스턴스 여부와 상관없이 바로 접근이 가능하고, 사용이 가능.. 더보기
유니티 C# 자료구조 Dictionary (딕셔너리) C#에는 많은 자료 구조가 있지만, 상황별로 가장적절한 자료구조를 쓰는 것이 중요하다.오늘은 게임 개발에서 유용하게 쓰일 수 있는C# 자료구조 Dictionary에 대해 알아보고이 자료구조가 왜 유용하지에 대해 알아보겠다. 먼저 여러 자료구조들의 추가, 검색, 삭제, 인덱스 접근에대한 시간복잡도를 나타내는 표이다. 보시다시피 딕셔너리는추가, 검색, 삭제 부분에서 상수시간의 시간복잡도를 보인다.이것만 보아도 딕셔너리의 효율성을 짐작할 수 있다. 간단하게 딕셔너리의 사용법에 대해 알아보도록 하자.먼저 Dictionary(딕셔너리)는 사용자가 원하는 대로 키를설정할 수 있는 자료구조이다. 또한 이 키값으로 int뿐만아니라문자열이나 다양한 변수형을 넣을 수 있다는 점이다. 인터넷에 좋은 예제가 있어 실습겸 작성.. 더보기
메모리 영역(code, data, stack, heap) 프로그램은 크게 instruction(명령)과 data로 구분되며, 일반적으로 4가지, 좀더 세분화 하면 5가지 정도 구분 할 수 있다.--> 아래 그림 참조. 1) code 영역- 코드 자체를 구성하는 메모리 영역으로 Hex파일이나 BIN파일 메모리다.- 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역이다. 2) data 영역- 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. 가) 초기화 된 데이터는 data 영역에 저장되고, 나) 초기화 되지 않은 데이터는 BSS (Block Stated Symbol) 영역에 저장된다.- 프로그램이 실행 될 때 생성되고 프로그램이 종료 되면 시스템에 반환 된다.- 함수 내부에 선언된 Sta.. 더보기