Life is Game๐ŸŽฎ

๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜ ๊ฐœ์š”

ํ—ค์Šค๋” 2025. 1. 12. 23:57

์˜ค๋Š˜์€ ๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ๋‹ค.

 

 

 

Engine Differences Across Genres - ์žฅ๋ฅด์— ๋”ฐ๋ฅธ ์—”์ง„์˜ ์ฐจ์ด


๊ฒŒ์ž„ ์—”์ง„์€ ์žฅ๋ฅด์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ๊ณผ ๊ธฐ๋Šฅ์„ ํ•„์š”๋กœ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 2D ํ”Œ๋žซํผ ๊ฒŒ์ž„๊ณผ 3D ์˜คํ”ˆ ์›”๋“œ ๊ฒŒ์ž„์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ธฐ์ˆ ์  ์ ‘๊ทผ ๋ฐฉ์‹์„ ์š”๊ตฌํ•œ๋‹ค. 2D ๊ฒŒ์ž„์—์„œ๋Š” ์Šคํ”„๋ผ์ดํŠธ ์ฒ˜๋ฆฌ, ๋ฌผ๋ฆฌ ์—”์ง„ ๋ฐ ๊ฐ„๋‹จํ•œ ์• ๋‹ˆ๋ฉ”์ด์…˜ ์‹œ์Šคํ…œ์ด ์ค‘์š”ํ•˜์ง€๋งŒ, 3D ๊ฒŒ์ž„์—์„œ๋Š” ์‚ฌ์‹ค์ ์ธ ๊ทธ๋ž˜ํ”ฝ, ์กฐ๋ช… ํšจ๊ณผ ๋ฐ ๋ณต์žกํ•œ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ํ•„์š”ํ•œ๋‹ค. Unity์™€ Unreal Engine์€ ์ด๋Ÿฌํ•œ ๋‹ค์–‘ํ•œ ์žฅ๋ฅด์— ๋งž์ถฐ ์œ ์—ฐํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์–ด ์žˆ์–ด, ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ฐ ์žฅ๋ฅด์˜ ํŠน์„ฑ์— ๋งž๋Š” ๊ธฐ๋Šฅ์„ ์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

1. 2D ๊ฒŒ์ž„

Unity

  • Unity๋Š” 2D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๋„๊ตฌ์™€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์Šคํ”„๋ผ์ดํŠธ ์• ๋‹ˆ๋ฉ”์ด์…˜, ๋ฌผ๋ฆฌ ์—”์ง„, UI ๊ตฌ์„ฑ ์š”์†Œ ๋“ฑ์ด ์ž˜ ๊ฐ–์ถฐ์ ธ ์žˆ์–ด, ์•„์ผ€์ด๋“œ ๊ฒŒ์ž„์ด๋‚˜ ํผ์ฆ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋„๋ฆฌ ์‚ฌ์šฉ๋œ๋‹ค.
  • ์–ธ์–ด: C#
  • Unity๋Š” C#์„ ์ฃผ์š” ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, Unity์˜ API์™€ ํ•จ๊ป˜ C#์„ ํ™œ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Godot

 

Godot Engine - Free and open source 2D and 3D game engine

Godot provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

godotengine.org

  • Godot๋Š” ์˜คํ”ˆ ์†Œ์Šค ์—”์ง„์œผ๋กœ, 2D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”๋œ ๊ธฐ๋Šฅ์„ ๋งŽ์ด ์ œ๊ณตํ•œ๋‹ค. ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด(GDScript)๋ฅผ ํ†ตํ•ด ๋น ๋ฅด๊ฒŒ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด ์ธ๋”” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ธ๊ธฐ๊ฐ€ ๋†’๋‹ค.
  • ์–ธ์–ด: GDScript, C#
  • Godot๋Š” GDScript๋ผ๋Š” ์ž์ฒด ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, Python๊ณผ ์œ ์‚ฌํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค. ๋˜ํ•œ, C#๋„ ์ง€์›ํ•˜์—ฌ ๋” ๋ณต์žกํ•œ ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


2. 3D ๊ฒŒ์ž„

Unreal Engine

  • Unreal Engine์€ ๊ณ ํ’ˆ์งˆ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์‚ฌ์‹ค์ ์ธ ๋ฌผ๋ฆฌ ์—”์ง„์„ ์ œ๊ณตํ•˜์—ฌ, FPS, RPG, ์˜คํ”ˆ ์›”๋“œ ๊ฒŒ์ž„ ๋“ฑ ๋‹ค์–‘ํ•œ 3D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•˜๋‹ค. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋น„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋„ ์‰ฝ๊ฒŒ ๊ฒŒ์ž„ ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์–ธ์–ด: C++, Blueprints
  • Unreal Engine์€ C++์„ ๊ธฐ๋ณธ ์–ธ์–ด๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด ๋งŽ์ด ํ™œ์šฉ๋œ๋‹ค. ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ๋น„ํ”„๋กœ๊ทธ๋ž˜๋จธ๋„ ์‹œ๊ฐ์ ์œผ๋กœ ์Šคํฌ๋ฆฝํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค.

CryEngine

 

CRYENGINE | The complete solution for next generation game development by Crytek

The complete solution for next generation game development by Crytek

www.cryengine.com

  • CryEngine์€ ์‚ฌ์‹ค์ ์ธ ํ™˜๊ฒฝ ๋ Œ๋”๋ง๊ณผ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ๋›ฐ์–ด๋‚˜ FPS ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํŠนํžˆ 'Crysis' ์‹œ๋ฆฌ์ฆˆ์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ์ด ์ค‘์š”ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐ•์ ์„ ๋ณด์ธ๋‹ค.
  • ์–ธ์–ด: C++, Lua
  • CryEngine์€ C++์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, Lua ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ๊ฒŒ์ž„ ๋กœ์ง์„ ๊ฐ„๋‹จํžˆ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 


3. ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„

Unity

  • Unity๋Š” ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์— ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜์—ฌ, ๋น„ํ–‰ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๋‚˜ ๋†์žฅ ๊ฒฝ์˜ ๊ฒŒ์ž„ ๋“ฑ ๋‹ค์–‘ํ•œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์— ์ ํ•ฉํ•˜๋‹ค. ๋˜ํ•œ, Unity Asset Store๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ์—์…‹์„ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์–ธ์–ด: C#
  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์—์„œ๋„ Unity์˜ C#์„ ํ™œ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์‹œ์Šคํ…œ๊ณผ AI๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

Unreal Engine

  • ๊ณ ๊ธ‰ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์‚ฌ์‹ค์ ์ธ ๋ฌผ๋ฆฌ๋ฅผ ์š”๊ตฌํ•˜๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์—์„œ๋„ Unreal Engine์ด ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํŠนํžˆ, VR(๊ฐ€์ƒ ํ˜„์‹ค) ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ๋Š” ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค.
  • ์–ธ์–ด: C++, Blueprints
  • Unreal Engine์˜ C++๊ณผ ๋ธ”๋ฃจํ”„๋ฆฐํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๊ฒŒ์ž„์˜ ๋ฌผ๋ฆฌ์™€ AI๋ฅผ ์„ธ๋ฐ€ํ•˜๊ฒŒ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 



4. ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„

Unity

  • Unity๋Š” iOS์™€ Android ๋ชจ๋‘์— ์ตœ์ ํ™”๋œ ๋นŒ๋“œ๋ฅผ ์ œ๊ณตํ•˜์—ฌ, ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์—”์ง„ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜์—ฌ, ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์–ธ์–ด: C#
  • ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์—์„œ๋„ Unity์˜ C#์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์›์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Cocos2d-x

 

Cocos - The world's top 2D&3D engine, game / smart cockpit /AR/VR/ virtual character / education

The world's top lightweight, efficient, cross-platform digital content development platform can meet different development needs for 3D, 2D, AR&VR and other unique content creation, and can provide complete solutions in frontier fields such as smart cockpi

www.cocos.com

  • Cocos2d-x๋Š” 2D ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ์—”์ง„์ด๋‹ค. ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ตฌ์กฐ์™€ ๋†’์€ ์„ฑ๋Šฅ ๋•๋ถ„์— ์ธ๋”” ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ธ๊ธฐ๊ฐ€ ๋†’๋‹ค.
  • ์–ธ์–ด: C++, Lua, JavaScript
  • Cocos2d-x๋Š” C++์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋ฉฐ, Lua์™€ JavaScript๋ฅผ ํ†ตํ•ด ์Šคํฌ๋ฆฝํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ตฌ์กฐ ๋•๋ถ„์— ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„์— ์ ํ•ฉํ•˜๋‹ค.

 

์œ„์˜ ๋‚ด์šฉ์„ ์š”์•ฝํ•ด๋ณด๋ฉด ์ด๋Ÿฌํ•˜๋‹ค.

 

Game Engine Survey


  • Unity: Unity๋Š” 2D ๋ฐ 3D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋ชจ๋‘ ์ ํ•ฉํ•˜๋ฉฐ, ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์ง€์›์ด ๋›ฐ์–ด๋‚˜๋‹ค. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ๊ฒŒ์ž„์„ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ด‘๋ฒ”์œ„ํ•œ ์—์…‹ ์Šคํ† ์–ด๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‰ฝ๊ฒŒ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ฐ•๋ ฅํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์› ๋•๋ถ„์— ์ธ๋”” ๊ฐœ๋ฐœ์ž์™€ ํ”„๋กœํŽ˜์…”๋„ ๋ชจ๋‘์—๊ฒŒ ์„ ํ˜ธ๋œ๋‹ค.

 

  • Unreal Engine: Unreal Engine์€ ๊ณ ํ’ˆ์งˆ ๊ทธ๋ž˜ํ”ฝ๊ณผ ์‚ฌ์‹ค์ ์ธ ๋ฌผ๋ฆฌ ์—”์ง„์ด ๊ฐ•์ ์ด๋‹ค. AAA ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋ณต์žกํ•œ ๊ฒŒ์ž„ ๋กœ์ง์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ฃจํ”„๋ฆฐํŠธ ์‹œ์Šคํ…œ์„ ์ œ๊ณตํ•œ๋‹ค. ์‚ฌ์‹ค์ ์ธ ์กฐ๋ช…๊ณผ ๊ณ ๊ธ‰ ๋ Œ๋”๋ง ๊ธฐ์ˆ  ๋•๋ถ„์— ๊ทธ๋ž˜ํ”ฝ์ ์œผ๋กœ ๋›ฐ์–ด๋‚œ ๊ฒŒ์ž„์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • Godot: Godot๋Š” ์˜คํ”ˆ ์†Œ์Šค ์—”์ง„์œผ๋กœ, ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ตฌ์กฐ์™€ ์‰ฌ์šด ์‚ฌ์šฉ๋ฒ•์ด ํŠน์ง•์ด๋‹ค. ํŠนํžˆ ์ธ๋”” ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ธ๊ธฐ๊ฐ€ ๋†’์œผ๋ฉฐ, GDScript๋ผ๋Š” ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ๋น ๋ฅธ ํ”„๋กœํ† ํƒ€์ดํ•‘์ด ๊ฐ€๋Šฅํ•˜๋‹ค. Godot๋Š” 2D ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ, 3D ๊ฒŒ์ž„ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•œ๋‹ค.

 

  • CryEngine: CryEngine์€ ์‚ฌ์‹ค์ ์ธ ํ™˜๊ฒฝ๊ณผ ๊ทธ๋ž˜ํ”ฝ์„ ์ œ๊ณตํ•˜๋ฉฐ, ํŠนํžˆ FPS ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•˜๋‹ค. ๊ณ ๊ธ‰ ๋ฌผ๋ฆฌ ์—”์ง„๊ณผ ์‚ฌ์‹ค์ ์ธ ๋ Œ๋”๋ง ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด, 'Crysis'์™€ ๊ฐ™์€ ๊ทธ๋ž˜ํ”ฝ์ด ์ค‘์š”ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค. ๋ณต์žกํ•œ ํ™˜๊ฒฝ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ๋ฐœํœ˜ํ•œ๋‹ค.

 

  • Cocos2d-x: Cocos2d-x๋Š” 2D ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ์—”์ง„์ด๋‹ค. ๊ฒฝ๋Ÿ‰ํ™”๋œ ๊ตฌ์กฐ์™€ ๋†’์€ ์„ฑ๋Šฅ ๋•๋ถ„์— ์ธ๋”” ๊ฐœ๋ฐœ์ž๋“ค ์‚ฌ์ด์—์„œ ์ธ๊ธฐ๊ฐ€ ๋†’์œผ๋ฉฐ, C++์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜์—ฌ Lua์™€ JavaScript๋ฅผ ํ†ตํ•œ ์Šคํฌ๋ฆฝํŒ…๋„ ์ง€์›ํ•œ๋‹ค. ํŠนํžˆ, ๊ฒฝ๋Ÿ‰ํ™”์™€ ์„ฑ๋Šฅ ์ตœ์ ํ™”๊ฐ€ ์ค‘์š”ํ•œ ๋ชจ๋ฐ”์ผ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ ํ•ฉํ•˜๋‹ค.

 

 

 

Version Control


๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(Version Control System, VCS)์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ๋กœ, ํ”„๋กœ์ ํŠธ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. VCS๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ์ฝ”๋“œ์˜ ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์ถ”์ ํ•˜๊ณ , ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ˜‘์—…์ด ์›ํ™œํ•ด์ง€๊ณ , ์ฝ”๋“œ์˜ ํ’ˆ์งˆ๊ณผ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.



1. ์ค‘์š”์„ฑ

  • ๋ณ€๊ฒฝ ์ด๋ ฅ ๊ด€๋ฆฌ
    • VCS๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋กํ•˜์—ฌ, ์–ธ์ œ, ๋ˆ„๊ฐ€, ์–ด๋–ค ๋ณ€๊ฒฝ์„ ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์ด๋ ฅ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์›์ธ์„ ๋ถ„์„ํ•˜๊ณ , ์ด์ „ ์ƒํƒœ๋กœ ์‰ฝ๊ฒŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ฐ˜์„ ๋งˆ๋ จํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ํŠน์ • ๊ธฐ๋Šฅ์ด ์ž˜๋ชป ์ž‘๋™ํ•˜๊ธฐ ์‹œ์ž‘ํ•œ ๊ฒฝ์šฐ, ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ์–ธ์ œ ์ถ”๊ฐ€๋˜์—ˆ๊ณ  ์–ด๋–ค ๋ณ€๊ฒฝ์ด ์žˆ์—ˆ๋Š”์ง€๋ฅผ ์ถ”์ ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ˜‘์—… ์ง€์›
    • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ์ž‘์—…ํ•˜๋Š” ๊ฒฝ์šฐ, VCS๋Š” ๊ฐ ๊ฐœ๋ฐœ์ž์˜ ์ž‘์—…์„ ํ†ตํ•ฉํ•˜๊ณ  ์ถฉ๋Œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์— ๋™์ผํ•œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ, VCS๋Š” ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    • Git์˜ ๊ฒฝ์šฐ, ๋ธŒ๋žœ์น˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ, ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉํ•˜๊ธฐ ์ „์— ์ถฉ๋ถ„ํžˆ ํ…Œ์ŠคํŠธํ•˜๊ณ  ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ
    • VCS๋Š” ์ฝ”๋“œ์˜ ๋ชจ๋“  ๋ฒ„์ „์„ ์ €์žฅํ•˜๋ฏ€๋กœ, ๋ฐ์ดํ„ฐ ์†์‹ค์ด๋‚˜ ์‹œ์Šคํ…œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์‰ฝ๊ฒŒ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Š” ๊ฐœ๋ฐœ ๊ณผ์ •์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ด๋ฉฐ, ์‹ค์ˆ˜๋กœ ์ธํ•œ ์†์‹ค์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ฝ”๋“œ๊ฐ€ ์ž˜๋ชป ์ˆ˜์ •๋œ ๊ฒฝ์šฐ, ๊ฐ„๋‹จํ•œ ๋ช…๋ น์–ด๋กœ ์ด์ „ ์•ˆ์ • ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

 


2. ํ™œ์šฉ ๋ฐฉ๋ฒ•

  • ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
    • ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ ์ค‘์•™ ์ €์žฅ์†Œ(๋ ˆํฌ์ง€ํ† ๋ฆฌ)๋ฅผ ์ƒ์„ฑํ•˜์—ฌ, ๋ชจ๋“  ํŒŒ์ผ๊ณผ ํด๋”๋ฅผ ํฌํ•จํ•œ๋‹ค. Git๊ณผ ๊ฐ™์€ ๋ถ„์‚ฐํ˜• VCS์˜ ๊ฒฝ์šฐ, ๊ฐ ๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ค‘์•™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.
    • Git์—์„œ๋Š” git init ๋ช…๋ น์–ด๋กœ ์ƒˆ๋กœ์šด ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ปค๋ฐ‹(Commit)
    • ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์ปค๋ฐ‹์„ ํ†ตํ•ด ์ €์žฅ๋œ๋‹ค. ๊ฐ ์ปค๋ฐ‹์€ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํฌํ•จํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ๋‚˜์ค‘์— ๋ณ€๊ฒฝ ์ด๋ ฅ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋Š” ๊ฐ„๊ฒฐํ•˜๋ฉด์„œ๋„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, git commit -m "Fix bug in user authentication"์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๋ธŒ๋žœ์นญ(Branching)
    • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์ด๋‚˜ ๋ฒ„๊ทธ ์ˆ˜์ •์„ ์œ„ํ•ด ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ž‘์—…ํ•œ๋‹ค. ๋ธŒ๋žœ์น˜๋Š” ๋ฉ”์ธ ์ฝ”๋“œ์™€ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฐ„์„ ์ œ๊ณตํ•œ๋‹ค. ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด, ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋ฅผ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ(Merge)ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ†ตํ•ฉํ•œ๋‹ค.
    • Git์—์„œ๋Š” git branch new-feature๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ , git checkout new-feature๋กœ ํ•ด๋‹น ๋ธŒ๋žœ์น˜๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ‘ธ์‹œ(Push)์™€ ํ’€(Pull)
    • ํŒ€์›๋“ค๊ณผ์˜ ํ˜‘์—…์„ ์œ„ํ•ด ๋กœ์ปฌ์—์„œ ์ž‘์—…ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ค‘์•™ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์— ํ‘ธ์‹œ(push)ํ•˜๊ณ , ๋‹ค๋ฅธ ํŒ€์›์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ’€(pull)ํ•˜์—ฌ ์ตœ์‹  ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค. ์ด๋Š” ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋‹ค.
    • git push origin main ๋ช…๋ น์–ด๋กœ ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํ‘ธ์‹œํ•˜๊ณ , git pull origin main์œผ๋กœ ์ตœ์‹  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ถฉ๋Œ ํ•ด๊ฒฐ
    • ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์ผํ•œ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. VCS๋Š” ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์„ ๊ฐ์ง€ํ•˜๊ณ , ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•œ ํŒŒ์ผ์€ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๋‹ค๋Š” ํ‘œ์‹œ๊ฐ€ ๋˜๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•œ ํ›„ ๋‹ค์‹œ ์ปค๋ฐ‹ํ•ด์•ผ ํ•œ๋‹ค.

 


3. ์ฃผ์š” ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

Git

ํ˜„์žฌ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ถ„์‚ฐํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์˜คํ”ˆ ์†Œ์Šค์ด๋ฉฐ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค. GitHub, GitLab๊ณผ ๊ฐ™์€ ํ”Œ๋žซํผ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ํ˜‘์—…์ด ์šฉ์ดํ•˜๋‹ค.

 

Subversion (SVN)

์ค‘์•™ ์ง‘์ค‘ํ˜• ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ, ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ค‘์•™ ์„œ๋ฒ„์— ์ €์žฅํ•œ๋‹ค. ํŒ€์›๋“ค์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‰ฝ๊ฒŒ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ถ„์‚ฐํ˜• VCS์— ๋น„ํ•ด ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

Mercurial

Git๊ณผ ์œ ์‚ฌํ•œ ๋ถ„์‚ฐํ˜• VCS๋กœ, ์‚ฌ์šฉ์ด ๊ฐ„ํŽธํ•˜๊ณ  ์ง๊ด€์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ํŠน์ • ํ™˜๊ฒฝ์—์„œ ๋” ๋‚˜์€ ์„ฑ๋Šฅ์„ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค.

 

์ด์™€ ๊ฐ™์ด, ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์€ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ณ , ํ˜‘์—…์„ ์›ํ™œํ•˜๊ฒŒ ํ•˜๋ฉฐ, ์ฝ”๋“œ์˜ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ด๋‹ค. ๊ฐ ํŒ€์€ ์ž์‹ ์˜ ํ•„์š”์— ๋งž๋Š” VCS๋ฅผ ์„ ํƒํ•˜๊ณ , ์ด๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.