최적화

 


1. 개요
3. 경영과학에서의 최적화
4. 경제학에서의 최적화
5. 게임에서의 최적화
5.1. 카트라이더에서의 최적화
6. 소울컴퍼니 출신의 2인조 힙합 듀오
7. 관련 문서

最適化 / optimization

1. 개요


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

2. 프로그램 최적화


자세한 내용은 해당 문서 참조.
PC최적화와 관련 소프트웨어에 대한 내용은 PC최적화 문서 참조.
검색 엔진, 비디오 게임도 엄연히 프로그램이므로 아래 하위 문단도 프로그램 최적화로 볼 수 있다.

2.1. 검색 엔진 최적화


SEO(Search Engine Optimization)
SEO 마케팅이란 Search Engine Optimization의 약자로써 검색엔진 최적화를 의미한다. SEO는 검색엔진 디지털 마케팅의 종류중 하나로써, 목표 웹사이트를 검색엔진의 상단 노출을 하도록 하게하여 트래픽(방문율)을 높이는 마케팅 전략중 하나이다. 대표적으로 구글 SEO 가 있으며 전세계 구글 SEO 시장규모는 약 5조원으로 알려져있으나 국내에서는 네이버의 존재로 인해 아직까지는 해당 시장이 덜 알려져있다 다만, 2019년부로 구글의 검색엔진 점유율이 30%를 돌파하여 빠르게 네이버를 추격하고 있으며 점점 더 구글 SEO의 중요성이 부각되고 있는 추세다.
예를들어, "잠실 햄버거 맛집" 이라는 키워드를 구글에 검색을 했을때 상단 노출이 된다면 매출 상승효과를 기대할 수 있고 이렇게 특정 웹사이트를, 특정 키워드가 검색되었을 때 상단노출을 시키는 작업을 검색엔진 최적화, 혹은 SEO라고 지칭 한다.
구글 SEO 마케팅과 구글 PPC(구글 키워드 광고)는 마케팅검색엔진 상단에 웹사이트를 노출시킨다는 목표는 같지만, 많은 점에서 다른 마케팅 기법이다. 일단 PPC는 pay-per-click의 약자로, "클릭당 과금" 이라는 뜻을 가지고 있습니다. 이게 무슨 뜻이냐 하면, SEO같은경우 최적화가 잘된 웹사이트가 구글 크롤러(Google Crawler)에 의해서 자연스럽게, 그리고 무료로 검색을 하는 사람들에게 노출이 되는 반면에, PPC의 경우 광고주가 지정한 해당 키워드가 검색될 경우, 광고주의 웹사이트의 DA(Domain Authority)나, 백링크 등의 최적화 여부와 상관없이 임의로 상단에 노출을 시키게 된다.
네이버의 경우 검색 엔진으로부터 특정 순위 이상에 노출되지 않는 일종의 제재를 받는 것은 블로그 저품질이라고 부른다. 한편 네이버 측에서는 이러한 용어들이 속어일 뿐이며 존재하지 않는다고 주장한다.

2.2. 비디오 게임 최적화


보통 게임에서의 최적화라는 것은 '발매 시기 기준으로, 화면에 표현되는, 보여주는 그래픽의 품질에 비해 얼마나 사양을 많이 요구하는가' 를 감안해서 판단한다고 보면 된다.
즉 발매 시기의 일반적인 pc 사양으로 어느정도 괜찮은 플레이가 가능한 게임이라고 해도, 그 그래픽이 보편적으로 봤을때 아주 형편없는 수준이라고 한다면, '일반적인 플레이에는 문제가 없지만 최적화는 제대로 되어 있지 않는 상황' 이라고 보면 된다.
일반적인 플레이에 문제가 있는가 없는가 하는 것 만을, 최적화가 잘 되어 있는지를 판단할 수 있는 절대적인 기준이라 생각하는것은 문제가 있다는 뜻.
좀 과장해서 예를 들면
화면에 선으로만 이루어진 100픽셀 짜리 사각형 한개를 그려서 그걸 상하 좌우로 움직이고 회전시켜서 보여주는 프로그램이 있는데, 만약 이 프로그램이 부드럽게 실행 되기 위해서 요구하는 최소 사양이 인텔 펜티엄 cpu를 필요로 한다고 가정하자.
그러면 2020년 기준 보편적인 pc 사양으로 이 프로그램을 돌리는데는 아무런 문제가 없다고 해도 되겠지만, 이 프로그램의 최적화는 매우 형편없는 수준이라고 할 수 있는것이다.
물론 그래픽의 품질의 좋고 나쁨 이라는 것 자체가 사실상 정해진 기준이 없는거나 마찬가지이기 때문에, 해당 게임에 사용되는 각종 그래픽 효과라던지 하는 요소들을 하나하나 따져서 비교하고 판단을 해야 하지만 이런것은 매우 번거로운 일이고 전문성을 요구하므로, 대부분의 유저들은 최적화가 잘 되어있다고 소문난 다른 게임을 기준으로 비교해서 판단하곤 한다. 또한 자신의 pc 에서 제대로 실행되면 그걸로 최적화가 잘 되어있다 결론을 내리고 생각하길 포기하는 경우도 발생하곤 한다.
주기적으로 평균 PC 사양이 높아져서 최적화에 대해서 관대해지는 시기가[1] 존재하는 이유이기도 하다., 물론 금방 또 다른 발적화 게임들이 등장해 더욱 더 높은 미친듯한 요구사양을 필요로 하는 경우가 흔히 발생하곤 하지만..
'내 pc 사양이 평균적인 사양이고, 거기서 프레임이 잘 나오고 게임이 부드럽게 되니까 최적화가 잘 되어 있는 것 아니냐?' 라는 의문을 가지는 사람들은 생각해 봐야 할 문제.
최적화 문제에 대해서는 유저 뿐만이 아니라 제작자들도 신경을 쓰게 된다. 최적화를 하는 만큼 비용과 시간이 소모되는데, 최적화를 더 많이 하면 사양이 낮아지니 더 많은 유저들이 플레이 할 수 있을 것이고, 최적화를 적게 해서 더 이른 시일 내에 게임을 발표하면 비용을 더 적게 들이고 출시를 할 수 있으니 딜레마에 빠지는것은 당연한 경우.
최적화나 버그 수정이 덜 되어 있는 상태로 게임을 일단 빠르게 출시한 후, 수많은 유저들의 피드백을 활용해서 이 후 패치로 최적화를 잡아버리는 풍조가 만연해 있는것도 관계가 없지는 않을듯.
물론 프로그래머가 신이 아닌 이상 최적화에도 한계는 있는데, 각종 시뮬레이션 게임들의 경우 수많은 오브젝트가 등장하므로 오브젝트가 늘어날수록 사양이 어쩔 수 없이 높아질 수밖에 없다. 특히 심시티류의 건설 시뮬레이션 같은 경우 플레이어가 건물을 지을수록 프레임드랍이 일어나게 되는데 이런 것까지 어쩔 수는 없는 노릇이다. 이는 프로그램 측면에서의 최적화가 아닌 기본적인 게임 디자인의 문제다.
FPS(first person shooter)를 즐겨하는 유저들에게는 상당히 중요한 요소다. 최적화에 문제가 발생하면 단순히 프레임이 높거나 낮게 나오는 것 보다도, 자잘한 끊김이나 밀림현상이 자주 발생한다는 문제가 있기 때문에, 점으로 점을 맞춘다고 해도 과언이 아닌 FPS 게임 에서는 치명적인 부분.

2.2.1. 레벨 디자인 최적화


레벨 디자이너 커뮤니티 등지에서 종종 논의되고 있는 이슈 중 하나로 맵상에서 프레임이 너무 심각하게 떨어져 게임 진행에 지장을 주지 않기 위해 원인이나 정도를 파악하고 조치를 취하는 일을 디자이너 사이에선 통상적으로 '최적화' 라 칭한다. 프레임 하락의 원인으론 대개 다음과 같다.
  • 유저 PC 사양이 평균보다 낮다.[2]
  • 게임 엔진발적화 혹은 원인 모를 에러가 있다.
  • 맵 지형이나 모델[3] 등에 고화질의 텍스처가 심각하게 남용된다.
  • 각종 사물이나 NPC와 그것들의 시체, 그리고 여기에서 튄 파편들(Gibs)이 맵상에 너무 많이 존재한다.
그리고 문제 원인이 파악되면 다음과 같이 작업이 이루어진다.
  • 고화질 텍스처가 원인이라면 24비트 텍스처를 256컬러로 낮추는 식으로 다운그레이드 혹은 해당 텍스처가 사용되는 빈도를 낮춘다.[4] 혹은 일반적으로 볼 수 없는 부분의 해상도를 낮춘다. 이것의 대표적인 사례가 하프라이프: 데이 원[5]과 스카이림의 화이트런[6]
  • 과도한 사물들이 많아 생긴거면 게임 상에서 자주 보거나 쓸 일이 없는 것들부터 삭감하나, 엔진이 눈 앞의 사물 위주로 연산하고 나머지는 대충 처리하는 경우라면 한 공간에 너무 많은 사물들이 위치하게 않게 해줘도 좋다. 또한 게임이나 연출 특성상 부득이하게 시체와 파편들이 많이 발생되어야 한다면 발생(혹은 생성)된 지 몇 초 뒤 형태가 흐려져 사라지게끔 하는 것도 좋다.[7]
  • 레벨 또는 배경 오브젝트나 텍스처를 팔레트 스왑 혹은 여러 개로 분할시켜[8] 일부만 불러오거나 구조나 텍스처 일부를 바꿔 다른 모델로 변형하는 방법도 존재한다. 비슷한 예로 사운드 파일도 여러개로 분할, Sentence(문장) 스크립트 파일에 짜여진 대로 소리가 순서대로 나게 만드는 경우도 있다. 이것처럼.
물론 유저의 사양이나 엔진상 문제면 레벨 디자이너가 할 수 있는 일은 별로 없다.
여담이지만, 엔진에 따라 눈에 보이지 않는 불필요한 사물을 디자이너가 임의적으로 조절 혹은 생략시키는 기능도[9] 존재하기도 한다.
애초에 거의 모든 게임은 기본적으로, 벽만 있고 뒤쪽 내용물은 없는 텅 빈 연극용 무대 배경 같은것 들의 집합체라고 보면 된다. 그 상태에서 플레이어 눈에 보이는 부분에만 필요한 것들을 배치하고 그렇지 않은 부분은 텅 비게 놔두는 것은 레벨디자인의 기본이며, 그런식으로 만들어 나가면서도 완성하게 되면 또 필요없는 부분이 생겨나고, 그걸 또 치워나가는 작업을 반복한 끝에, 내용물도 텅텅 비우고 바깥쪽도 깎을 수 있는 한 최대한 깎아서 아주 얇은 껍질 한장만 남기고도 모자라서 그 껍질 뒷편마저 떼어내 버리는게 최적화라고 보면 된다
당연히 정성들어 하면 할수록 필요 시간과 비용이 매우 증가하게 된다..

3. 경영과학에서의 최적화


  • 조합 최적화 (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)가 있을 때, 이 함수를 최대로 하거나 최소로 하는 변수 값을 찾는 최적화 문제. 수리계획법 문제들은 상당수 이쪽 범주에 들어간다.

4. 경제학에서의 최적화


경제학 중에서도 수리경제학에서 최적화를 다룬다. 최적화는 의사결정을 내리는 경제 주체가 가장 바람직하다고 생각하는 상태를 만들기 위해 하는 것이다. 인간의 합리성 등을 가정하고 소비자의 효용극대화, 기업의 이윤극대화의 를 구한다. 동적 계획법이나 최적제어론 역시 경제학에 응용되고 있다. 레닌그라드 공방전 당시 라도가 호수의 수송 문제에 이런 방법론들이 적용되어 수많은 사람들의 목숨을 구했다.

5. 게임에서의 최적화


특히 스타크래프트나 스타크래프트 2에서, 구현을 목표로 하는 빌드가 있다면 게임 시작 후 그 빌드에 도달하기까지의 군더더기를 제거하는 것을 일컫거나, 일꾼의 숫자를 자원의 양에 맞게 배치하는 것을 말한다.
이는 스타크래프트 2에서 두드러지게 나타나는데, 스타크래프트 2는 게임 시 주요 건물(연결체, 부화장, 사령부) 주변의 자원에 몇 마리의 일꾼이 캐고 있는지 알 수 있으므로, 자원의 양에 따른 일꾼 수 조절이 쉽다.일반적인 공허의 유산 래더맵에서는 미네랄 16기[10], 가스 3×2기 해소 멀티 하나에 22기의 일꾼이 붙는 걸 최적화가 됐다고 한다.

5.1. 카트라이더에서의 최적화


카트라이더에서도 최적화라는 기술이 있다. 드리프트를 할때 라인을 안정적으로 잡기 위해서 사용하는 기술이다. 드리프트를 할때 가고싶은 방향으로 쉬프트를 누른 후 드리프트가 다 끝나갈 때쯤 반대 방향키를 눌러서 다시 차체를 안정시키는 방법이다.
카트라이더를 잘하고 싶다면 제일 먼저 배워야할 것 중 하나인 기술이다. 나중에 되면 이게 자연스러워져서 이런 것도 기술인가 할정도로 숙련되어야 한다.

6. 소울컴퍼니 출신의 2인조 힙합 듀오


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

7. 관련 문서




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