최적화

덤프버전 :

1. 개요
4. 게임에서의 최적화
4.2. 카트라이더에서의 최적화 드리프트
5. 소울컴퍼니 출신의 2인조 힙합 듀오
6. 기타
7. 관련 문서



1. 개요[편집]


/ Optimization

최적화란, 말 그대로 가장 알맞은 상황으로 맞춘다는 말이다.

조금 더 넓은 의미에서 보자면 한정된 자원과 상황[1] 속에서 최대한의 성능을 발휘할 수 있도록 끌어올리는 행위, 즉 효율을 높이는 행위로 볼 수 있다. 보통은 저 '성능'이 속도만을 의미하는 경우가 많지만 문맥에 따라 비용, 재료, , 업무 생산성 등을 뜻하기도 한다.

2. 수학, 컴퓨터과학, 산업공학, 경제학에서의 최적화[편집]


  • 조합 최적화 (Combinatorial Optimization): 주어진 항목들의 조합으로 해가 표현되는 최적화 문제. 계산 복잡도에서 'NP-난해'가 나오는 비선형계획법 문제들은 최적해를 구하기 힘들다. 구할 수 있다 해도 비용이 많이 든다. 따라서 NP-난해임을 증명하는 방법, NP-난해일 경우 해의 품질을 포기하고 근사해를 구하는 기법들을 배우게 된다. 대표적으로 '외판원 순회 문제'가 있다.
    • 메타 휴리스틱(meta heuristics) (대학원): 최적해(optimal solution)을 보장하지는 않지만 준최적해(suboptimal solution)을 빠르게 찾는 알고리즘. 유전 알고리즘, 모방 알고리즘, 입자 군집 최적화(particle swarm optimization, PSO), 개미 집단(ant colony) 알고리즘, 타부 탐색(Tabu search), 담금질 기법(simulated annealing), 하모니 탐색(Harmonic search) 등이 있다.
  • 함수 최적화(function optimization): 어떤 목적 함수(objective function)가 있을 때, 이 함수를 최대로 하거나 최소로 하는 변수 값을 찾는 최적화 문제. 수리계획법 문제들은 상당수 이쪽 범주에 들어간다.
  • 경제학: 수리경제학에서 최적화를 다룬다. 최적화는 의사결정을 내리는 경제 주체가 가장 바람직하다고 생각하는 상태를 만들기 위해 하는 것이다. 인간의 합리성 등을 가정하고 소비자의 효용극대화, 기업의 이윤극대화의 해를 구한다. 동적 계획법이나 최적제어론 역시 경제학에 응용되고 있다. 레닌그라드 공방전 당시 라도가 호수의 수송 문제에 이런 방법론들이 적용되어 수많은 사람들의 목숨을 구했다.
  • 컴퓨터과학의 한 분야인 이론 컴퓨터 과학에서 많이 쓰인다. 세부적으로 들어가면 담금질 기법, 선형계획법, 비선형계획법 등 다양한 알고리즘을 활용한다.
파일:나무위키상세내용.png   자세한 내용은 최적화 이론 문서를 참고하십시오.


3. 프로그램 최적화[편집]


PC최적화와 관련 소프트웨어에 대한 내용은 최적화 프로그램 문서 참조.

검색 엔진, 비디오 게임도 엄연히 프로그램이므로 아래 하위 문단도 프로그램 최적화로 볼 수 있다.
파일:나무위키상세내용.png   자세한 내용은 프로그램 최적화 문서를 참고하십시오.


3.1. 검색 엔진 최적화[편집]


SEO(Search Engine Optimization, 검색엔진 최적화)란 구글 크롤러가 웹사이트의 정보를 크롤링 하고, 순위를 매기는 방식에 맞도록 웹사이트를 수정, 조율을 하여 최적화 작업을 하고, 이를 통해 검색 결과(SERPs)의 상단에 타겟 웹사이트를 구글 상위 노출을 시켜 트래픽(방문자)을 높이는 디지털 마케팅 전략을 지칭한다. 간단하게 말하자면 수많은 웹 문서 중 이용자가 찾고있는 자료를 찾아주는 역할을 한다. 인터넷에서 원하는 자료를 찾는 것이 목적이지만 컴퓨터는 스스로 생각하지는 않기 때문에 사람이 컴퓨터의 기준에 맞춰서 웹 문서를 잘 작성 해야한다.

웹사이트 출력 속도라던가, 웹 문서에 사용된 단어들 그리고 심지어 팔로우 유사 기능도 옛날 부터 있었고 검색 엔진은 이런 요소들을 전반적으로 측정한다. 웹에서 URL 팔로우 기능은 역링크 형태로 볼 수 있고 다른 웹사이트의 URL을 A(앵커)태그로 기재해주면 검색엔진은 팔로우 한 것으로 간주하여 해당 URL의 평가를 높혀주는 처리 방식이다. 네이버 블로그는 데스크탑과 모바일 환경에서 검색 여부가 엇갈리는데, 네이버 검색에서는 로봇 규칙을 반영하지 않기 때문에 검색에 나오게 된다. 네이버의 VIEW 검색은 검색엔진 표준과 다른 방식으로 작동한다. # 그래서 댓글에 URL을 넣는 방식으로 악용하는 사례가 많다.

오늘날 웹 문서는 대충 찾아봐도 알겠지만 유사한 문서가 많고 같은 주제의 문서도 아주 많은 편이다. 물론 대부분의 글들은 전문성이 부족하므로 10 페이지를 이상 둘러보기도 하지만 이러한 글 주제는 너무 많기 때문에 그냥 처음부터 다른 주제의 글을 쓰는 것이이 상책이다.


3.2. 비디오 게임 최적화[편집]


보통 게임에서의 최적화라는 것은 '발매 시기 기준으로, 화면에 표현되는, 보여주는 그래픽의 품질에 비해 얼마나 사양을 많이 요구하는가' 를 감안해서 판단한다고 보면 된다. 즉 발매 시기의 일반적인 pc 사양으로 어느정도 괜찮은 플레이가 가능한 게임이라고 해도, 그 그래픽이 보편적으로 봤을때 아주 형편없는 수준이라고 한다면, '일반적인 플레이에는 문제가 없지만 최적화는 제대로 되어 있지 않는 상황' 이라고 보면 된다. 일반적인 플레이에 문제가 있는가 없는가 하는 것 만을, 최적화가 잘 되어 있는지를 판단할 수 있는 절대적인 기준이라 생각하는것은 문제가 있다는 뜻.

좀 과장해서 예를 들면 화면에 선으로만 이루어진 100픽셀 짜리 사각형 한개를 그려서 그걸 상하 좌우로 움직이고 회전시켜서 보여주는 프로그램이 있는데, 만약 이 프로그램이 부드럽게 실행 되기 위해서 요구하는 최소 사양이 인텔 펜티엄 cpu를 필요로 한다고 가정하자. 그러면 2020년 기준 보편적인 pc 사양으로 이 프로그램을 돌리는데는 아무런 문제가 없다고 해도 되겠지만, 이 프로그램의 최적화는 매우 형편없는 수준이라고 할 수 있는 것이다.

물론 그래픽의 품질의 좋고 나쁨 이라는 것 자체가 사실상 정해진 기준이 없는거나 마찬가지이기 때문에, 해당 게임에 사용되는 각종 그래픽 효과라던지 하는 요소들을 하나하나 따져서 비교하고 판단을 해야 하지만 이런것은 매우 번거로운 일이고 전문성을 요구하므로, 대부분의 유저들은 최적화가 잘 되어있다고 소문난 다른 게임을 기준으로 비교해서 판단하곤 한다. 또한 자신의 pc 에서 제대로 실행되면 그걸로 최적화가 잘 되어있다 결론을 내리고 생각하길 포기하는 경우도 발생하곤 한다.

주기적으로 평균 PC 사양이 높아져서 최적화에 대해서 관대해지는 시기가[2] 존재하는 이유이기도 하다. 물론 금방 또 다른 발적화 게임들이 등장해 더욱 더 높은 미친 듯한 요구사양을 필요로 하는 경우가 흔히 발생하곤 하지만.

'내 pc 사양이 평균적인 사양이고, 거기서 프레임이 잘 나오고 게임이 부드럽게 되니까 최적화가 잘 되어 있는 것 아니냐?' 라는 의문을 가지는 사람들은 생각해 봐야 할 문제.

최적화 문제에 대해서는 유저 뿐만이 아니라 제작자들도 신경을 쓰게 된다. 최적화를 하는 만큼 비용과 시간이 소모되는데, 최적화를 더 많이 하면 사양이 낮아지니 더 많은 유저들이 플레이 할 수 있을 것이고, 최적화를 적게 해서 더 이른 시일 내에 게임을 발표하면 비용을 더 적게 들이고 출시를 할 수 있으니 딜레마에 빠지는 것은 당연한 경우. 최적화나 버그 수정이 덜 되어 있는 상태로 게임을 일단 빠르게 출시한 후, 수많은 유저들의 피드백을 활용해서 이 후 패치로 최적화를 잡아버리는 풍조가 만연해 있는 것도 관계가 없지는 않을듯.

물론 프로그래머가 신이 아닌 이상 최적화에도 한계는 있는데, 각종 시뮬레이션 게임들의 경우 수많은 오브젝트가 등장하므로 오브젝트가 늘어날수록 사양이 어쩔 수 없이 높아질 수밖에 없다. 특히 심시티류의 건설 시뮬레이션 같은 경우 플레이어가 건물을 지을수록 프레임드랍이 일어나게 되는데 이런 것까지 어쩔 수는 없는 노릇이다. 이는 프로그램 측면에서의 최적화가 아닌 기본적인 게임 디자인의 문제다.

FPS(first person shooter)를 즐겨하는 유저들에게는 상당히 중요한 요소다. 최적화에 문제가 발생하면 단순히 프레임이 높거나 낮게 나오는 것 보다도, 자잘한 끊김이나 밀림현상이 자주 발생한다는 문제가 있기 때문에, 점으로 점을 맞춘다고 해도 과언이 아닌 FPS 게임 에서는 치명적인 부분.


3.2.1. 레벨 디자인 최적화[편집]


레벨 디자이너 커뮤니티 등지에서 종종 논의되고 있는 이슈 중 하나로 맵상에서 프레임이 너무 심각하게 떨어져 게임 진행에 지장을 주지 않기 위해 원인이나 정도를 파악하고 조치를 취하는 일을 디자이너 사이에선 통상적으로 '최적화' 라 칭한다. 프레임 하락의 원인으론 대개 다음과 같다.

  • 유저 PC 사양이 평균보다 낮다.[3]
  • 게임 엔진발적화 혹은 원인 모를 오류가 있다.
  • 맵 지형이나 모델[4] 등에 고화질의 텍스처가 심각하게 남용된다.
  • 각종 사물이나 NPC와 그것들의 시체, 그리고 여기에서 튄 파편들(Gibs)이 맵상에 너무 많이 존재한다.

그리고 문제 원인이 파악되면 다음과 같이 작업이 이루어진다.

  • 고화질 텍스처가 원인이라면 24비트 텍스처를 256컬러로 낮추는 식으로 다운그레이드 혹은 해당 텍스처가 사용되는 빈도를 낮춘다.[5] 혹은 일반적으로 볼 수 없는 부분의 해상도를 낮춘다. 이것의 대표적인 사례가 하프라이프: 데이 원[6]과 스카이림의 화이트런[7]

  • 과도한 사물들이 많아 생긴거면 게임 상에서 자주 보거나 쓸 일이 없는 것들부터 삭감하나, 엔진이 눈 앞의 사물 위주로 연산하고 나머지는 대충 처리하는 경우라면 한 공간에 너무 많은 사물들이 위치하게 않게 해줘도 좋다. 또한 게임이나 연출 특성상 부득이하게 시체와 파편들이 많이 발생되어야 한다면 발생(혹은 생성)된 지 몇 초 뒤 형태가 흐려져 사라지게끔 하는 것도 좋다.[8]

  • 레벨 또는 배경 오브젝트나 텍스처를 팔레트 스왑 혹은 여러 개로 분할시켜[9] 일부만 불러오거나 구조나 텍스처 일부를 바꿔 다른 모델로 재탕변형하는 방법도 존재한다. 비슷한 예로 사운드 파일도 여러개로 분할, Sentence(문장) 스크립트 파일에 짜여진 대로 소리가 순서대로 나게 만드는 경우도 있다. 이것처럼.

물론 유저의 사양이나 엔진상 문제면 레벨 디자이너가 할 수 있는 일은 당사자를 갈구고 최저사양을 올려적는 거 빼면 별로 없다.

여담이지만, 엔진에 따라 눈에 보이지 않는 불필요한 사물을 디자이너가 임의적으로 조절 혹은 생략시키는 기능도[10] 존재하기도 한다.

애초에 거의 모든 게임은 기본적으로, 벽만 있고 뒤쪽 내용물은 없는 텅 빈 연극용 무대 배경 같은것 들의 집합체라고 보면 된다. 그 상태에서 플레이어 눈에 보이는 부분에만 필요한 것들을 배치하고 그렇지 않은 부분은 텅 비게 놔두는 것은 레벨디자인의 기본이며, 그런식으로 만들어 나가면서도 완성하게 되면 또 필요없는 부분이 생겨나고, 그걸 또 치워나가는 작업을 반복한 끝에, 내용물도 텅텅 비우고 바깥쪽도 깎을 수 있는 한 최대한 깎아서 아주 얇은 껍질 한장만 남기고도 모자라서 그 껍질 뒷편마저 떼어내 버리는게 최적화라고 보면 된다
당연히 정성들어 하면 할수록 필요 시간과 비용이 매우 증가하게 된다..

4. 게임에서의 최적화[편집]



4.1. 실시간 전략 게임[편집]




실시간 전략 게임에서 쓰는 용어로, 특히 스타크래프트스타크래프트 2에서, 구현을 목표로 하는 빌드가 있다면 게임 시작 후 그 빌드에 도달하기까지의 군더더기를 제거하는 것을 일컫거나, 일꾼의 숫자를 자원의 양에 맞게 배치하는 것을 말한다.

파일:데하카 전용 추출장.png
이는 스타크래프트 2에서 두드러지게 나타나는데, 스타크래프트 2는 게임 시 주요 건물(연결체, 부화장, 사령부)과 가스 채취 건물(융화소, 추출장, 정제소) 주변의 자원에 몇 마리의 일꾼이 캐고 있는지 위 사진[11]처럼 UI 상으로 알 수 있으므로, 자원의 양에 따른 일꾼 수 조절이 쉽다. 일반적인 공허의 유산 래더맵에서는 광물 한 덩이당 2기×8, 가스 채취 건물 하나당 3기×2로 확장 기지 하나에 22기의 일꾼이 붙는 걸 최적화가 됐다고 한다.


4.2. 카트라이더에서의 최적화 드리프트[편집]


카트라이더에서도 최적화라는 기술이 있다. 직각형 코너에서 드리프트를 할때 라인 및 감속을 안정적으로 잡기 위해서 사용하는 기술이다. 가장 적은 감속으로 바퀴의 스키드가 겹치지 않는 수준으로 얇게 드리프트를 하면 순간 부스터가 나간다. 드리프트를 얇게 하지만 감속이 적기 때문에 부스터 게이지가 잘 차며 후속 코너 라인을 잡기에도 좋다.

감속이 적은 드리프트라는 특성 상 카트라이더의 스피드전 실력을 늘리기 위해서라면 필수적으로 익혀야 하는 기본 중의 기본이며 대부분의 카트라이더 드리프트 기술들이 최적화 드리프트에서 파생된 기술들이다.

대표적으로 커팅 드리프트가 이 최적화 드리프트에 방향 잡는 드리프트를 추가하여 일반적인 드리프트 각이 안 나오는 코너에서 드리프트를 사용할 수 있는 기술이며 연타 드리프트는 최적화 드리프트가 끝나면서 순간 부스터와 동시에 후속 최적화 드리프트를 하는 기술이다. 톡톡이도 최적화 드리프트를 질질 끌어주는데서 시작되었다.

5. 소울컴퍼니 출신의 2인조 힙합 듀오[편집]


화나와 칼날이 소울컴퍼니의 첫 번째 레이블 앨범인 The Bangerz에서 첫 선을 보인 힙합 듀오다. 화나의 말에 따르면 프로젝트 그룹에 가까웠다는 듯. 라임 몬스터 화나와 그에 못지 않았던 칼날의 날카로운 랩핑이 리스너들에게 깊은 인상을 심어줬지만, 칼날이 얼마 있지 않아 음악활동을 줄이면서 자연스럽게 화나 솔로로 나오는 일이 많아졌다. 현재는 주로 화나 혼자 활동을 하고 있으며, 칼날은 2009년 프로듀서 콤마의 앨범에 수록한 주변인이라는 곡을 마지막으로 음악 활동을 접었다.

6. 기타[편집]


여담으로 사람의 도 최적화 진행 중이라는 연구결과가 있다. 뇌 크기는 점점 줄어들고 있는데, 지능은 오히려 높아지는 기현상이 발생하고 있기 때문.#

7. 관련 문서[편집]




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-19 02:42:40에 나무위키 최적화 문서에서 가져왔습니다.

[1] 자원과 환경이 넉넉하다면 최적화는 의미가 없어진다.[2] 게임이 최적화가 제대로 되어 있지 않아 그래픽 품질에 비해 매우 높은 사양을 요구한다 하더라도, 보편적인 사양이 그 수준을 능가하는 시기이기 때문에 그다지 문제로 삼지 않게 된다.[3] 이럴때 저사양 옵션 등을 따로 해주지 않으면 플레이 자체가 불가능하다.[4] 맵상의 NPC나 배경 오브젝트.[5] 하프라이프 텍스처 에디터중 하나인 Wally는 해당 게임의 텍스처 묶음에 24비트 텍스처를 넣으면 자동으로 256색으로 변환해 준다. 만약 그런게 없으면 포토샵에서 텍스처마다 일일이 index color를 해줘야 한다.[6] '적을 발견했다' 쳅터 지상 부분 지붕 위.[7] 도시 밖에서 tcl 등을 치고 성벽 안을 들여다 보면 근거리임에도 지면 텍스쳐들이 마구 뭉개진 걸 볼 수 있다.[8] 밸브 역시 하프라이프 시리즈 제작시의 프레임 저하 노하우를 포탈2에서도 발휘했는데, 테스트 쳄버(구획)별로 나눠서 맵 로딩이 잦다. 또한 여기저기 비산한 파편들을 몇 초 뒤에 소멸되게 만든 게 대표적.[9] 예컨대 집 모델이 굴뚝과 지붕, 문 등으로 분할된 것. 방사선 작업실에선 분할화 등으로 칭한다.[10] 해머(에디터)의 경우엔 맵상에서 힌트나 스킵 브러쉬, 애리어 포털 등을 배치해 건너편 사물을 임의적으로 안 보이게 만들 수 있다.[11] 위 사진의 건물은 협동전 임무에서 데하카가 쓰는 전용 추출장이다.