Skip to content

Latest commit

 

History

History
154 lines (109 loc) · 4.5 KB

etc_files.md

File metadata and controls

154 lines (109 loc) · 4.5 KB

기타 설정에 자주 사용되는 파일들

많은 툴에서 설정파일로 사용되는 기타 파일들을 알아보겠습니다.

자신이 만든 프로그램의 설정파일을 저장해야하는 상황은 소프트웨어를 설계하며 자주 발생됩니다. 이때 자신만의 포멧을 만들기 보다는 다른 프로그래머들이 쉽게 해당 설정 데이터를 가져다 사용할 수 있도록 범용 포멧으로 저장하는 것을 추천합니다. 또한 많은 툴들이 이미 범용 포멧을 사용하여 저장하고 있습니다.

자주사용하는 범용파일을 다루어 보겠습니다.

Json

JavaScript Object Notation 의 약자입니다.

파일의 구조는 단순합니다. 정보는 보통 아래처럼 구성되어있습니다. 컴퓨터, 사람 모두 읽기 쉽다는 점이 좋습니다.

data.json

{
    "project" : "circle",
    "shots" : ["FOO_0010","BAR_0010"]
}

test.py

import json

with open('data.json') as f:
    data = json.load(f)

print(data)
  • mongoDB 데이터 형식에 사용됩니다.
  • Aamazon Web Service 설정시 사용됩니다.
  • restAPI
  • 추후 개발툴이 확장되어 미래에 웹과 연동을 생각한다면 이 포멧을 설정파일로 사용하면 좋습니다.

파이썬 파서 : https://stackabuse.com/reading-and-writing-json-to-a-file-in-python/

Xml

Extensible Markup Language 의 약자입니다. html언어 처럼 이미 약속된 tag를 사용하는 것이 아닌, 사용자가 원하는 tag를 지정하여 사용할 수 있습니다.

파일의 구조는 아래 구조를 띄고 있습니다. 파일을 저장하게되면 데이터양 보다 태그 양이 더 많습니다. 데이터 저장이 비 효율적이라서 저는 꼭 Xml을 써야하는 상황이 아니라면 잘 사용하지 않습니다.

data.xml

<?xml version="1.0" encoding="UTF-8"?>
<info>
    <project>
        <name>circle</name>
        <deadline>2020.01.13</deadline>
    </project>
    <shots>
        <item>
            <name>FOO_0010</name>
        </item>
        <item>
            <name>BAR_0010</name>
        </item>
    </shots>
</info>

test.py

#!/usr/bin/env python
import xml.etree.ElementTree

root = xml.etree.ElementTree.parse("data.xml")

for e in root.findall("shots"):
    for sube in e.findall("item"):
        print sube.findtext("name")

파이썬 파서 : https://docs.python.org/2/library/xml.etree.elementtree.html

INI

ini initialization의 약자입니다. 보통 설정파일에 대한 비공식 표준형태의 포멧입니다. [ ]로 감싸 있는 것은 세션입니다. 세션 하위에는 키 = 값 으로 데이터를 저장할 수 있습니다. 다양한 형의 자료구조를 저장하기에 무리가 있지만, 가독성이 좋기 때문에 단순한 설정파일에 많이 사용되는 포멧입니다.

data.ini

[project]
name=circle
deadline="2020.01.13"

[shot01]
name=FOO_0010

[shot02]
name=BAR_0010

test.py

#!/usr/bin/env python
import ConfigParser

ini = ConfigParser.ConfigParser()
ini.read("data.ini")

print ini.sections()
print ini.options("project")
print ini.get("project","name")
  • 윈도우즈 프로그램들이 설정파일로 자주 사용하는 포멧입니다.
  • Unreal 프로젝트 설정에 사용됩니다.

python파서 : https://docs.python.org/3/library/configparser.html

기타

  • 위에 나열한 파일 이외에도 .yaml 파일도 자주 사용됩니다.
  • .cfg, .conf 이름의 확장자 이지만 실제로 에디터에서 파일을 열어보면 .ini, .json, .xml 형태의 파일구조를 자주 사용하기도 합니다.

설정파일의 위치

리눅스에서는 일반적으로 설정파일을 홈디렉토리에 저장합니다. 설정파일이 많다면 ~/.appname의 폴더를, 설정파일이 단일 파일이라면 ~/.appnamerc 이름으로 자주 사용됩니다.

아래 명령어들을 타이핑하여 이미 존재하는 설정파일들을 관찰해 보세요.

$ cd ~
$ ls -al

여러분도 앞으로 여러분의 프로그램을 만들게 될 것 입니다. 이미 수많은 프로그램들이 따르고 있는 일반화된 규칙을 따르면 다른 개발자 및 사용자들이 이해하기 쉽습니다.