Inventory
-
기술 면접 책관련(배열, 문자열 / 재귀호출)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 13. 16:56
문자열은 문자의 배열일 뿐이다(보통은 읽기 전용)배열 : 메모리 블록에 연속적으로 나열된 같은 유형의 변수 모음..인덱스 접근으로 검색이 O(1)이긴하지만..최악의 배열이면 배열도 검색이 O(n)이 된다.특히 문자 배열이 있을떄 W를 찾아내라 ? 이런건 O(n)임 배열 중간의 데이터 삭제나 추가는 느려진다는 단점이 있다. 이건 o(n) 이다대부분의 동적배열은 내부적으로 정적 배열을 사용하는데..동적 배열의 크기를 바꿀때는 보통 적당한 크기의 새로운 배열을 만들고 모든 원소를 복사하고 기존 배열의 메모리 할당을 해제해야하는 식이다.꽤 느린 연산이다. 포인터 상수 : char* const charPtr 이런식이다. 메모리상의 다른 위치를 가리키도록 변경시킬 수 없음..값을 변경가능..상수 포인터 : cons..
-
기술 면접관련 책 정리..(리스트 트리, 그래프)@ 16. 1 ~ 17. 1/면접관련 2016. 12. 13. 15:46
항상 시간복잡도 다음에는 공간복잡도를 생각해야한다. 리스트 관련 리스트에서 머리 원소에 대한 추적여기서 주의할것은 바로 bool insertInfront(IntElement **head, int data)이런 함수에서 head가 계속 갱신이 되야 한다면 이중포인터로 넘겨야 한다. 그래야지 안에서 된다! 주의하자!bool insertInfront(IntElement* head, int data)로는 안된다..지역변수만 바꾸기 때문에..Swap함수를 잘 생각해보자.(만약에 멤버변수로 있다면 상관이 없겠지...) 리스트 종주(순회)머리리스트가 아닌 다른 리스트 원소를 가지고 작업을 해야하는 경우도 있다. 연결 리스트의 첫 번째 원소가 아닌 원소에 대한 연산을 하려면일부를 종주(순회)해야한다.주의해야할것은 마지..
-
짐벌락, 쿼터니언, 오일러 회전 관련..@ 16. 1 ~ 17. 1/면접관련 2016. 12. 13. 13:45
짐벌락을 알기 전에 먼저 오일러각과 회전시스템을 알아야 한다. 오일러 각이란 우리가 흔히 쓰는 xyz, x축 기준의 회전각 y축 기준의 회전각 z축 기준의 회전각을 말한다. 오일러 각은 회전행렬로 오브젝트를 애니메이트 하려고 할때 발생이 된다. 각 축을 독립적으로 평가하기 때문이다. 세축이 종속적이기 때문에 짐벌 락이라고 표현이된다는...z축을 돌리는 순간 xy축은 함께 돌아가니까..세축이 종속적인 이유는..회전 자체를 이 세축으로 나눠서 계산하기 떄문이다.. 오일러 앵글이 설정한 순서에 각 축을 독립적으로 평가하기 때문이라..쿼터니언은 세개의 추기 동시에 업데이트 되기 때문에 짐벌락이 일어나지 않는다라.. 내프로젝트에서 짐벌락이 발생안된 이유는 한개축만 회전을 하기 때문이다. Y축 짐벌락 : 3차원 공..
-
닷넷과 에저로 서버개발@ 16. 1 ~ 17. 1/Unity 2016. 12. 9. 14:32
데이터베이스를 거쳐서 조회를 해오고 조회한 데이터를 API에서 뿌려주는게 일반적이다.모델 클래스는 데이터베이스에서 가져온 데이터나 매개변수로 받아온 정보를 담아두는 역활을 한다. 웹과 데이터 베이스를 만들어야한다라....웹과 데이터베이스는 별개다.. 웹에는 웹API를 만들어야하고.. 데이터 베이스는 테이블을 먼저 만들어야한다..스토어드(저장) 프러시저 데이터베이스 안에서 명령을 수행하는 프로그램여러 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 묶음.. 단순 싱글플레이면 REST API 서버로 개발하는게 일반적.. API서버와 데이터 베이스 통신순서도API 서버 데이터베이스 서버HTTP 요청 -> 라우터 -> 컨트롤러 -> 모델 -> 저장 프로시져 -> 테이블HTTP 응답
-
DontDestroyOnLoad@ 16. 1 ~ 17. 1/Unity 2016. 12. 8. 18:31
DontDestroyOnLoad 사용시 주의 점 전부터 저 함수를 자식 오브젝트에 사용하면 장면이 교체되어도 자식 포함해서 부모까지 전부 남는 건지 궁금했었는데 당장 사용하질 않아서 당시에는 그냥 넘기고 잊고 있다가 이번에 ios로 테스트하려니 켜자마자 그냥 죽길래 뭐가 문제인가 찾아보다가 이것 때문인 걸 알게 되어서 몇 자 적습니다. 5.3버전부터 경고를 했었나 보네요. DontDestroyOnLoad only work for root GameObjects or components on root GameObjects. 라고 뜨는데요. 말 그대로 최상위 게임오브젝트나 최상위 게임오브젝트에 붙어있는 컴포넌트에서만 작동한다는 경고 메시지입니다. 그런데 이 메시지를 저만 그런지는 모르겠으나 에디터에서는 안 띄..
-
as 연산자 / yield@ 16. 1 ~ 17. 1/C# 2016. 12. 8. 17:35
as 연산자는 as 뒤에 나오는 타입이 아니면 null을 반환한다.typeof는 특정 데이터 형식을 나타낸다.?클래스 자체의 타입을 가져온다...systen,tyoe t1 - typeof(Employee) // Employee자체가 타입으로 리턴됨..t1은 employee클래스 자체가 되는것.. C#의 yield 키워드는 호출자 (Caller)에게 데이타를 하나씩 리턴할때 사용한다. 흔히 반복자 Iterrator 라고 불리우는 이러한 기능은 집합적인 데이타섹으로부터 하나씩 데이타를 호출자에게 보내주는 역할을 한다. yield는 yield return 또는 yield break의 2가지 방식으로 사용되는데, yield return은 데이터를 하나씩 리턴하는데 사용되고, yield break는 리턴을 중지하..
-
http 프로토콜 요청 / 응답@ 16. 1 ~ 17. 1/네트워크 프로그래밍 2016. 12. 8. 14:38
HTTP 프로토콜의 구조 HTTP 프로토콜은 요청(Request)과 응답(Response)의 형태로 이루어졌다.예를들어 사용자가 웹 페이지의 링크를 클릭했을 때 브라우저는 HTTP 프로토콜의 요청 형태로 HTTP 메시지를 작성하여 웹 서버에 전송하게 된다. 웹 서버에서는 지금 받은 HTTP 메시지가 요청(Request) 메시지임을 판단하고 그 데이터를 분석해서 HTTP 프로토콜의 응답(Response) 형태로 메시지를 작성하여 브라우저로 보내게 되면 브라우저는 메시지를 받아서 사용자의 화면에 표시하게 된다. HTTP 메시지는 시작라인, 헤더, 본문으로 이루어져 있는데, 시작라인에는 URL, 헤더에는 버전정보, 본문에는 내용이 들어가있다. HTTP 요청(Request) 메시지HTTP 요청 메시지는 기본적으..