반응형

안녕하세요.

리액트 네이티브 학습을 어떻게 해야 될지 살펴보고 방향성을 갖도록 하겠습니다.

 

앱을 만들기 위해서 정말 좋은 프레임워크가 있다더라 이야기만 무수히 들립니다. 그렇게 학습자료를 찾아보는데 정작 리액트 네이티브 자료는 그렇게 많지는 않은데요. 시중에 나와 있는 도서들도 많지도 않고 어디서 배우기에도 마땅치 않아 보입니다. 왜 이렇게 다른 프레임워크에 비해 배우기 어려워 보일까요.

 

첫 번째로는,

리액트 네이티브(이하 RN)는 최근에 나온 프레임워크입니다. 변화도 정말 빠릅니다. 변화 속도도 빨라 어떻게 보면 책으로 나오기도 힘들어 보입니다. 1년 사이에 버전 업이 될 때 눈에 띄게 라이브러리 이름이라던지 사용방법들이 변경됩니다 ㅠ.ㅠ

 

두 번째로는,

RN는 리액트라는 프런트엔드 라이브러리 기반으로 사용되는 모바일 프레임워크입니다. 리액트가 선행 없이 RN을 학습하신다면 쉽지 않을 수 있습니다. 물론 리액트를 다루시는 분이라면 RN은 금방 다루 실수 있습니다. 리액트라는 허들이 하나 있어 처음부터 RN을 사용해서 앱을 만들기가 쉽지 않을 수 있습니다.

 

이렇게 변화가 빠른데도 많은 사람들이 사용할 수 있는 이유와 방법이 있지 않을까요?

바로 문서화가 정말 잘 되어 있습니다. 문서에 튜토리얼을 보고 학습을 한다면 기본을 금방 금방 익힐 수 있어요.

1. 리액트 학습

RN을 학습하기 전 리액트를 학습해주세요. 리액트를 익히기 위한 튜토리얼입니다. 설명만 있는 것이 아닌 틱택토라는 게임을 만들어 보면서 리액트를 익힙니다. 만들면서 배우니까 재미있기도 하고 리액트를 금방금방 익힙니다.

리액트 - 틱택토

https://reactjs.org/tutorial/tutorial.html

state와 props를 어떻게 사용하고 리액트 라이브러리를 활용하여 프런트를 만드는지 살펴봐주세요.

 

위에서는 만들면서 리액트를 학습했다면 아래는 차근차근 리액트에 대해서 설명을 해줍니다.

리액트 - Hello World

https://reactjs.org/docs/hello-world.html

시간 날 때마다 읽어주셔야 됩니다.

 

2. 리액트 네이티브 학습

리액트를 어느 정도 익혔고 감을 잡았다 하시면 리액트 네이티브를 학습해주세요.

React Native

https://facebook.github.io/react-native/docs/getting-started

리액트를 익히셨다면 RN 학습은 수월합니다. 기반은 리액트 기반이기에 어떻게 개발이 되었는지 봐주시면 됩니다.

RN도 본인의 프로젝트를 만들어서 직접 적용해가며 만들어보세요.

 

프로젝트를 만들고 부수는 것을 주저하지 마세요.

 

RN을 학습하시고 나면 리액트 네비게이션을 학습하겠습니다.

https://reactnavigation.org/docs/en/getting-started.html

리액트 네비게이션은 RN의 화면 구성을 할 수 있게 해주는 라이브러리입니다.

리액트 네비게이션 까지 학습을 하셨다면 바로 만들고 싶은 앱을 만들어 보시는 겁니다.

이후에는 필요로 하는 기능들에 대한 라이브러리들을 익혀서 적용을 해주시면 됩니다 :)

 

문서 기반으로 직접 프로젝트도 만들고 코드를 직접 작성하시면서 학습을 하시면 더욱 빠르게 익히실 수 있습니다.  눈으로만 문서를 보는 것이 아닌 코드를 직접 작성해가며 만들면서 학습하시면 더욱 많이 배우실 수 있습니다. 어느 정도 알고 있는 분이시라면 문서를 쭉 읽어 보는 것만으로도 자신의 프로젝트에 적용을 하실 수 있습니다. 하지만 처음 학습을 하신다면 문서 코드를 직접 타이핑하면서 학습하시기를 추천드립니다.

주로 책으로 학습 하시 던 분은 이런 방법이 익숙하지 않으실 수 있습니다. 하지만 프로그래밍은 이러한 방식으로 익혀주셔야 변화에 빠르게 움직일 수 있습니다.

 

이렇게 리액트 네이티브 학습법에 대해서 설명을 마치도록 하겠습니다 ^^

감사합니다.

반응형
반응형

안녕하세요.

잠시 숨을 돌리고 왔으니 이번 시간에는 파이썬 데이터와 클래스에 대해서 알아보겠습니다.

데이터의 종류와 클래스에 대해서 학습을 하시면 조금 더 우아한 그리고 편안하게 코드를 작성하실 수 있겠습니다.

그리고 프로그래밍을 하기 위한 기본을 익혔으니 프로그래밍을 어떻게 조금 더 연습할 수 있을지 이야기해보도록 하겠습니다.

 

4. 파이썬 데이터 - 값을 다양하게 저장하자 :)

앞 페이지에서 이미 변수에 대해서 알아봤습니다.

앞에서 설명드린 변수에서는 하나의 변수에 하나의 값만 다뤘습니다.

하지만 2, 4, 5, 9, 10 이렇게 연속적인 숫자가 있을 때, 5개의 변수를 만들어야 될까요?

이런 경우, 데이터가 많아질 때 여간 불편한 게 아닙니다.

리스트, 딕셔너리, 튜플이라는 3가지 자료형이 있습니다.

하나의 변수에 하나의 값을 저장하는 것이 아닌 조금 더 우아하게 데이터를 다룰 수 있도록 하나씩 살펴보겠습니다.

 

1) List (리스트)

2, 4, 5, 9, 10이라는 숫자가 있습니다.

5개의 변수 선언이 아닌 리스를 사용하시면 하나의 변수로 위의 값들을 제어하실 수 있습니다.

my_list = [2, 4, 5, 9, 10]

코드를 보시게 되면 하나의 변수에 "[ ]"를 감싸 숫자들을 저장하였습니다.

리스트를 사용하여 값들을 변수에 저장한 것입니다.

my_list[0] = 3
my_list[2] = 1
print(my_list) # result: [3, 4, 1, 9, 10]

리스트 변수는 인덱스 값이라는 순서를 갖게 됩니다.

인덱스 값은 0부터 시작이 됩니다. (1이 아니에요!!) 리스트 개수는 5개가 있으니 인덱스 값은 0부터 4까지 존재합니다.

리스트 변수에 0부터 시작하는 인덱스를 입력하여 리스트 값을 변경하거나 출력할 수 있습니다.

 

사진을 보시게 되면 my_list라는 리스트를 선언하였습니다. 그리고 0, 2 인덱스를 사용해서 값을 변경하였습니다.

인덱스 0은 3으로, 인덱스 2는 1로 변경하였습니다.

다음 줄에는 for문을 사용했는데요. for문에서 list를 입력하여 사용할 수 있습니다. 그렇다면 우리는 list의 범위를 몰라도 list 전체가 출력이 될 것입니다. 자주 쓰는 패턴이니 눈여겨 봐주세요.

 

리스트의 값을 추가하고 싶을 때는 append 함수를 사용해주세요.

my_list = [2, 4, 5, 9, 10]
my_list.append('50')
print(my_list) # result: [2, 4, 5, 9, 10, 50]

append 함수를 사용하면 리스트에 값을 추가할 수 있습니다.

 

2) Dictionary (딕셔너리)

리스트에서는 값만 존재하였다면, 딕셔너리에서는 키(key) 값이 존재합니다. 예제를 보면 더 빠르게 이해가 되겠습니다.

my_dictionary = {
    'name': 'jun',
    'lang': 'pyhton',
    'nationality': 'korea'
}

키값이라 함은 name, lang, nationality 가 되고, 값은 jun, python, korea가 됩니다.

사용방법은 리스트와 비슷합니다. 인덱스 대신 키값을 사용해서 값을 다뤄주시면 됩니다.

딕셔너리의 키값을 사용하여 값을 출력하는 예제입니다.

 

3) Tuple (튜플)

튜플은 리스트와 모습과 사용방법이 비슷합니다.

하지만 다른 점이 있습니다.

한번 초기화를 하고 나면 값이 변경이 안됩니다.

0번 인덱스의 값을 1로 변경하려는 시도를 합니다. 그리고 에러가 발생합니다.

사용방법은 리스트와 동일하나 다른 점이 있다면 값이 변경이 안되니 주의해주세요.

그럼 튜플은 언제 사용할까요?

튜플 특성 그대로, 변경하지 않을 값들을 저장하고 꺼내서 사용한답니다 :)

 

 

리스트, 딕셔너리, 튜플을 살펴봤습니다.

사용방법은 모두 비슷합니다.

리스트를 특히 많이 사용하기는 합니다. 프로그래밍을 하면서 "이 상황에 이런 데이터형을 사용하는 것도 좋겠다"라고 생각이 될 때 각각의 데이터형을 사용해보겠습니다.

 

5. 클래스 - 작성한 코드를 재사용하자 :)

클래스를 이야기 전에 객체(Object) 이야기부터 하겠습니다.

객체라 함은 현실세계의 객체들 예를 들어 자동차, 강아지 또는 사람 같은 것들을 객체라 합니다. 이런 객체들을 컴퓨터 세상에서 표현하기 위해서 클래스를 설계합니다.

즉, 클래스는 현실세계의 객체들을 컴퓨터 세상에 만들기 위한 설계도입니다. 이를 표현하기 위해서 정형화된 2가지 표현이 있습니다. 자동차라는 객체를 표현해보겠다고 생각하겠습니다.

 

"자동차 속도는 90km/h이다" / "자동차 기름이 5L가 있다" / "자동차가 달린다" / "자동차가 멈춘다"

 

가만히 보고 있으면 앞의 2개와 뒤의  2개의 차이점이 느껴지시나요?

앞쪽 설명은 자동차의 값과 관련된 내용이고, 뒤쪽에는 자동차의 행동에 관한 이야기입니다.

 

그렇습니다. 객체에서 중요한 표현 2가지는 값과 행동입니다.

이를 값은 속성(attributes)이라 하고 행동을 메서드(method)라고 합니다.

 

코드를 보면서 어떻게 클래스를 작성하는지 보도록 하겠습니다.

class Car:
    def __init__(self, velocity, oil):
        self.velocity = velocity
        self.oil = oil

    def run(self, num):
        self.velocity += num
        return self.velocity
        
    def stop(self, num):
        self.velocity -= num
        return self.velocity

Car라는 클래스를 만들었습니다.

속성을 보시는 바와 같이 속도 그리고 기름이 있습니다.

행동은 달리는 행동인 run 함수와 멈추는 행동인  stop이 있습니다.

 

__init__ 함수는 Car라는 클래스를 활용하여 객체를 만들 때 최초에 값을 초기화할 수 있는 함수입니다.

객체를 만들어 보고 어떻게 활용하는지 보도록 하겠습니다.

my_car1 = Car(20, 50)
my_car2 = Car(90, 6)

my_car1.run(10)
my_car2.stop(20)

my_car1라는 Car 객체, my_car2라는 Car 객체 2개를 만들었습니다.

객체는 무수히 만들어 낼 수 있습니다. 이렇게 설계도를 하나 만들어 놓으면 코드를 재작성할 필요 없이 객체를 계속 만들 수 있습니다.

첫 번째 my_car1은 속도는 20, 기름은 50이라는 자동차를 하나 만들었고 두 번째 객체 my_car2는 속도는 90, 기름은 6이 남은 객체를 만든 겁니다.  각각의 자동차들은 클래스에 만들어 놓은 run, stop 메서드를 사용해서 속도를 올리고 내릴 수 있습니다.

이렇게 클래스를 만들고 객체를 만들어 사용을 하시는 겁니다 :)

클래스를 만들고 객체를 다루는 방법도 생각만큼 어렵지 않습니다. 이제는 클래스를 직접 설계해보고 객체를 만드실 수 있으실 겁니다.

 

 

이제는 프로그래밍을 할 수 있는 지식을 쌓았습니다. 정말 이 정도면 프로그래밍을 하실 수 있습니다!!

그렇다면 "이것이 전부인가? 다 배운 것인가?"라고 생각하 실 수도 있습니다.

지금까지 배운 내용 기반이면 프로그래밍을 하실 수 있습니다. 프로그래밍을 작성하시면서 필요로 하는 부분은 하나씩 하나씩 익혀나가시면 됩니다.

 

하지만 막상 프로그래밍을 하려면 익숙지 않으실 겁니다. 이유는 개념은 알겠는데 연습이 없어서 그렇습니다. 프로그래밍은 학습도 학습이지만 연습과 단련을 필요로 합니다. 그래서 제가 추천드리는 방법은 프로그래밍 문제들을 한 문제씩 풀어보고 연습을 하시는 겁니다.

 

https://leetcode.com/problemset/algorithms/

 

Leetcode라는 알고리즘 사이트이며 추천드리는 사이트입니다 ^^

처음 풀어보면 쉽지 않습니다. 하지만 추천드리는 이유는 문제를 풀기 위해서 이것저것 작성해보시는 겁니다. 그리고 고민을 해보고 시간이 많이 지체되어 모르겠다 싶으면 해설을 보고 소화시키시면 됩니다.

그렇게 한 발자국씩 앞으로 나아가시면 되겠습니다.

 

이것으로 파이썬 데이터, 클래스 개념 파트도 마치도록 하겠습니다.

감사합니다.

반응형
반응형

안녕하세요.

저번 시간에는 파이썬 설치와 가상 환경을 구축하였습니다.

이번 시간에는 한 페이지로 보는 파이썬 기초와 예제를 다뤄 보겠습니다.

파이썬은 다른 언어에 비해서 배우기가 쉽습니다. 그렇다고 빠짐이 있는 부족한 언어가 아닙니다.

정말 많은 사람들이 프로그래밍을 작성할 수 있도록 만들어진 담백한 언어입니다.

물론 더욱 깊이 있게 학습을 하신다면 더 많은 학습을 하셔야 되지만 이 한 페이지 분량의 내용만 알고 있어도 프로그램을 작성하실 수 있겠습니다.

 

문법 설명은 1편, 2편으로 나눴습니다.

1편 (프로그래밍의 80%)

1. 변수 - 값을 받아 저장 하자
2. 분기문 - 조건에 따라서 분기를 시켜주자
3. 반복문 - 반복 작업을 불평 없이 한다

 

2편 (조금 더 편하게 그리고 아름답게 프로그래밍 하자)

4. 파이썬 데이터 - 값을 다양하게 저장하자

5. 클래스 - 작성한 코드를 재사용하자

 

1편부터 시작하겠습니다.

 

프로그래밍이라 함은 값을 계산하는 것이 프로그래밍입니다.

값을 받아서 저장하고, 조건에 따라서 분기를 시켜주고, 반복하며 계산하는 것이죠.

방금 말씀드린 작업들을 할 수 있도록 하나씩 하나씩 살펴보겠습니다.

 

1. 변수 - 값을 받아 저장 하자 :)

값을 저장하기 위해서는 공간을 필요로 합니다. 값을 아무 공간에 저장을 할 수는 없는 노릇입니다.

값을 저장한 공간을 기억하고 있다가 필요에 따라 그 값을 사용하게 됩니다.

이런 역할을 해주는 것이 변수입니다.

변수라 함은 값을 저장해놓은 공간이자 이름입니다. 변수가 어떤 모습인지 다음 코드를 보도록 하겠습니다.

one = 1
two = 2
my_name = 'jun'

딱 보면 직감적으로 알 수 있습니다. one이라는 곳에 1을 저장하고 있는 것 같고, two라는 곳에 2를 저장하는 것 같습니다. my_name이라는 곳에는 jun이라는 문자를 저장하고 있는 듯합니다.

네!! 맞습니다. 값들을 one, two  그리고 my_name이라는 곳에 저장을 합니다. 

one, two, my_name 이것을 변수라고 합니다. 필요로 하는 값을 저장해놓은 공간의 이름입니다.

변수를 최초에 위처럼 선언할 때 "변수를 초기화한다"라고 합니다. 용어로써 사용을 하니 참고해주세요.

 

변수를 초기화 한 이후에 또다시 사용할 수 있습니다. one이라는 변수에 다른 값을 넣는 것이죠.

one = 2
one = 50

one이라는 변수에 2라는 값도 대입을 해보고 50이라는 값을 대입해보았습니다.

 

실제로 파이썬 쉘을 열어서 변수에 값을 대입해보겠습니다.

(파이썬 쉘 창을 여는 방법은 이전 강의에서 학습을 했어요^^)

one이라는 변수에 처음에는 1 값을 대입하면 1 값이 저장되고, 100 값을 대입했더니 100이라는 값이 저장되었습니다.

이렇게 변수에 값을 저장해서 값을 사용을 하시는 겁니다.

 

변수에는 숫자 값뿐만 아니라 jun과 같은 문자도 저장이 가능하며

또한 참인지 거짓인지 표현할 수 있는 값도 저장이 됩니다. 이런 값을 Boolean이라고 합니다.

true_value = True
false_value = False

true_value와 false_value 변수가 2개 있습니다.

각각의 변수에는 참과 거짓을 표현할 수 있는 True와 False 값을 저장했습니다. True, False는 문자가 아닌 참과 거짓을 표현하는 파이썬 타입 중 하나입니다. 문자는 위의 jun을 변수에 저장하듯이 값에다가 작은(or 큰 - 둘 다 사용 가능) 따옴표를 씌어 주셔야 됩니다.

 

2. 분기문 - 조건에 따라서 분기를 시켜주자 :)

상황에 따라서 다르게 계산을 할 수 있는 분기문을 학습하겠습니다.

기본적으로 참이냐 거짓이냐에 따라서 분기시켜주는 모습을 보겠습니다.

if True:
	print('It is True')

분기문은 if라는 단어가 사용됩니다.

 

짚고 넘어가야 될 파이썬 문법 중 하나는 분기문이나 반복문 같은 지정어 표시 뒤에는 " : " 가 사용이 됩니다.

또 하나는 파이썬은 들여 쓰기에 민감합니다. if문 다음에 print는 들여 쓰기가 되어 있습니다. if문에 속하는 줄들은 if문 기준으로 들여 쓰기를 해주셔야 됩니다.

 

위의 코들 보시게 되면 if 문 뒤에 특정한 식이 오고 이 식이 참일 때 (현재는 무조건 참으로 작성) 다음 행동을 하게 됩니다. 지금은 참 조건이기 때문에 It is True라는 문자열이 출력이 되었습니다.

 

if False:
	print('It is True')
else:
	print('It is else')

if문에 False라는 boolean 값을 입력했습니다. 참이 아니기 때문에 'It is else'라는 문자열이 출력되겠습니다. else 부분은 조건에 참이 아닌 경우는 모두 else 부분에서 처리가 됩니다.

 

조건문에 True를 준 경우입니다. 참이기 때문에 It is True가 출력이 되었습니다. 참이 아닌 경우에는 else 구문으로 넘어가 It is else가 출력이 되겠습니다 :)

 

변수와 같이 사용한 분기문을 보도록 하겠습니다.

num = 10
if num > 0:
	print('num is bigger than 0')
else:
	print('num is smaller than 0')

num이라는 변수에 10을 대입했습니다. 조건문을 사용하여 num 값이 0 보다 큰 경우에는 'num is bigger than 0'이 출력이 되고 0보다 작은 경우는 'num i smaller than 0'이 출력이 됩니다.

 

조건문 예제를 하나만 더 보도록 하겠습니다.

num = 10
if num > 0:
	print('num is bigger than 0')
elif num == 0:
	print('num is 0')
else:
	print('num is smaller than 0')

중간에 elif num == 0 구문을 추가하였습니다. 직감적으로 알 수 있듯이 num이 0인 경우에는 num is 0을 출력하겠다는 구문을 추가한 것입니다.

 

3. 반복문 - 반복 작업을 불평 없이 한다 :)

컴퓨터는 반복 작업을 불평 없이 합니다. 수천,  수만 아니 사람이 할 수 없는 더 많은 반복 작업을 눈 깜빡하는 순간에 계산을 끝냅니다.

반복문 구문은 2가지가 있습니다. while문과 for문입니다. while문부터 살펴보겠습니다.

num = 0
while num <= 5:
	print(num)
	num += 1

num이라는 변수에 0으로 초기화하였습니다. 이제는 어느덧 변수가 익숙해지고 있는 걸 느끼실 겁니다.

while문을 보시게 되면 num 값이 0보다 작거나 같다면 num을 출력합니다. 이 부분이 반복에 조건입니다.

첫 번째 반복문에서는 num이 0보다 작아 print를 통해서 0을 출력합니다.

"num += 1" 구문은 "num = num + 1"구문의 축약형입니다. num 변수의 값을 +1 하겠다는 의미입니다.

그럼 num 값은 1이 되고 다시 반복문에 조건으로 올라가서 5보다 작거나 같은지 확인을 합니다.

조건이 참이 되면 반복문이 실행이 되고 num이 6이 되는 순간 반복문 조건에 맞지 않아 반복문을 벗어납니다.

위의 예제는 4보다 작거나 같은 경우에만 출력이 되고 num 값이 5가 되는 순간 반복문을 벗어납니다.

만약 num += 1이라는 줄이 없다면 어떻게 될까요?

num 은 계속 0이 될 것이고 끊임없이 0이 출력이 됩니다.

이를 무한루프라고 합니다. 컴퓨터의 리소스를 잡아먹는 귀신입니다. 무한루프에 빠지지 않도록 주의하셔야겠습니다.

 

for문을 살펴보겠습니다.

for i in range(0, 5):
	print(i)

i라는 for문에 사용하는 변수를 하나 입력해줍니다. i든 j든 임의 변수명을 작성해주시면 됩니다.

i라는 변수가 0 <= i < 5 범위에 속해 있는지 조건을 확인합니다. 조건에 충족이 되면 값을 출력합니다.

while문이랑 다른 점은 i 값이 자동적으로 증가됩니다.

i += 1이라는 조건을 명시하지 않아도 값이 자동으로 증가가 되는 겁니다.

 

실제로는 while문보다는 for문을 더 많이 사용합니다. 이점 참고 바랍니다.

 

이로써 변수, 조건문, 반복문 내용을 학습하였습니다.

지금까지 학습을 하셨다면 프로그래밍을 하기 위한 80%를 하신 겁니다.

정말로 코드를 보시면 대부분 위의 내용들로 코드가 작성되어 있습니다.

 

한 숨 돌리고 파이썬 데이터 구조와 클래스에 대해서 학습하도록 하겠습니다.

감사합니다.

반응형
반응형

안녕하세요.

이전 글에서는 파이썬 독학을 하기 위한 마음가짐을 갖췄고 학습을 시작해볼게요.

파이썬 학습 자료들을 찾아보니까, 많은 자료에서는 파이썬 설치를 아나콘다로 설치를 진행합니다.

아나콘다는 파이썬 설치 및 유명한 파이썬 패키지들을 한 번에 설치할 수 있는 묶음입니다. 파이썬 설치를 아나콘다로 하지 않고 순수 파이썬으로 설치를 진행하도록 하겠습니다.

필요한 패키지가 있으면 그때그때 설치를 하면 되죠 :)

 

파이썬 설치

1.

파이썬 공식 홈페이로 가셔서 파이썬을 다운로드를 진행해주세요.

https://www.python.org/downloads/

 

Download Python

The official home of the Python Programming Language

www.python.org

2.

다운로드 완료가 되면 인스톨 파일을 열어주세요. 설치를 진행하면서 주의하실 점이 있습니다.

바로 아래에 Add Pyhton 3.7 to PATH 체크박스에 체크를 해주세요.

체크 박스를 선택하지 않으면 PATH를 직접 잡아주셔야 됩니다.

PATH라 함은 윈도우 어디서든 파이썬을 실행시킬 수 있도록 잡아주는 경로입니다.

PATH를 잡지 않으면 설치된 파이썬 디렉터리에서만 파이썬을 실행시킬 수 있습니다.

Install Now를 누르고 설치를 진행해주세요 :)

 

3.

파이썬 설치가 완료 되었다면 파이썬 설치를 확인하겠습니다.

명령 프롬프트를 열어주세요.

 

윈도우키 + s -> cmd 입력 -> 명령 프롬프트 실행

or

윈도우키 -> cmd 입력 -> 명령 프롬프트 실행

 

명령 프롬프트가 열렸으면 아래와 같이 python 명령어를 입력해주세요.

python 명령어가 정상적으로 동작한다면 phthon shell이 열립니다.

이 모습을 보셨다면 파이썬이 정상적으로 설치가 완료되었습니다 :)

 

가상환경 설치

파이썬 가상환경을 설치하도록 하겠습니다.

파이썬 가상환경이라 함은 거창한 게 아닙니다. 프로젝트에 맞게 환경을 구축한다는 겁니다.

예를 들어 3개의 프로젝트를 동시에 진행하고 있습니다.

1) 자동 주식 프로그램, 2) 웹 개발 프로젝트, 3) 데이터 분석 프로젝트

위의 3개의 예시에서는 서로 다른 파이썬 패키지들을 사용합니다.

하지만 개발은 하나의 컴퓨터에서 개발하고 있습니다. 그렇기 때문에 서로의 프로젝트에 영향을 끼치지 않도록 방을 만들어주는 개념입니다.

웹 개발 프로젝트에서는 웹 개발을 위한 diango 패키지가 있는데 주식 프로그램에서는 django 패키지가 존재하지 않습니다. 주식 프로그램에서 django를 설치하고 싶다면 주식 프로그램 프로젝트 내에서 djagno 패키지를 설치를 해주셔야 됩니다.

 

파이썬 가상환경이란,

패키지를 글로벌하게 설치를 해주는 것이 아닌 "필요로 하는 프로젝트에만 설치를 하겠다" 입니다.

 

1.

위처럼 파이썬을 설치하시고 파이썬 쉘 안에 있으시다면

exit() 를 입력하고 파이썬 쉘 밖으로 나와주세요

파이썬 쉘 밖으로 나와 명령 프롬프트에서 다음과 같은 명령어를 입력해주세요.

 

pip install virtualenv

pip 명령어는 파이썬 패키지 관리를 하는 명령어입니다.

위의 명령어를 통해서 가상환경(virtualenv) 설치를 진행했습니다.

 

2.

virtualenv를 설치했다면 가상환경을 하나 만들어 보겠습니다.

다음과 같은 명령어를 입력해주세요.

 

virtualenv myenv

이 작업은 myenv라는 가상환경을 만들었습니다.

 

위의 예시로 들자면 아래의 3개의 프로젝트를 프로젝트마다 가상환경을 만들어 주는 겁니다.

- 자동 주식 프로그램 :  virtualenv stock

- 웹 개발 프로젝트 : virtualenv webenv

- 데이터 분석 프로젝트 : virtualenv dataenv

3번의 명령어를 통해서 3개의 가상환경을 만드는 작업입니다.

(3개 프로젝트는 예시로 든 작업입니다. 굳이 가상환경을 만들지 않으셔도 됩니다.)

 

3.

myenv라는 가상환경을 만들었으면 가상환경을 구동하도록 하겠습니다.

가상환경은 만들고 나서 꼭 구동을 시켜주셔야 가상환경으로써 역할을 하게 됩니다.

myenv라는 가상환경을 만들고 나면 디렉터리가 하나 만들어졌습니다.

다음 명령어를 통해서 스크립트 디렉터리로 이동해주세요. (cd 명령어는 디렉터리 이동 명령어입니다.)

cd myenv\Scripts

 

이동하셨다면 activate.bat 명령어를 입력해주세요.

activate.bat

위의 그림처럼 (myenv) 보이신다면 myenv 가상환경으로 들어오신 겁니다.

이제는 myenv 내에서 다양한 패키지를 설치를 해도 예시로 든 주식 프로그램이나 웹 프로젝트 패키지에는 영향을 끼치지 않는 겁니다. 즉, 웹 프로젝트를 개발할 때는 웹 프로젝트 가상환경을 구동하셔서 프로젝트를 개발하시는 겁니다.

 

파이썬 설치 및 가상환경 세팅을 완료하였습니다 :)

 

도움이 되셨으면 좋겠습니다.

감사합니다.

반응형
반응형

안녕하세요.

장고 기반 프레임워크 서버를 띄어 놓고 앱 개발을 하고 있습니다.

안드로이드 에뮬레이터는 안드로이스 스튜디오를 통해서 구동하였습니다.

 

장고 서버를 구동하면 웹 환경에서는 localhost 또는 127.0.0.1 로 접속을 시도 하였습니다.

안드로이드 에뮬레이터에서도 위와 같은 주소를 입력하면 페이지가 아예 뜨지 않습니다.

( 안드로이드 에뮬레이터 -> localhost 장고 서버 )

 

그럼 어떻게 접속을 해야될까요? 다음 문서를 잠시 보겠습니다.

위의 문서는 안드로이드 에뮬레이터 - 네트워킹 부분을 확인 하였습니다.

중간에 보시게 되면 10.0.2.2 IP 주소가 있습니다. 이 IP 주소는 당신의 개발 서버의 127.0.0.1 이라고 합니다.

우리는 안드로이드 에뮬레이터에서 10.0.2.2 로 접속을 해주시면 됩니다.

http://10.0.2.2:8000

8000이라는 포트 번호는 서버 세팅마다 다르니 이점에 참고해주세요.

위의 주소로 에뮬레이터에서 접속을 시도 하였습니다.

장고서버를 사용하시는 분들이라면 에러가 발생할겁니다.

disallowedhost at /

Invalid HTTP_HOST hreader

 

장고 프레임워크는 외부에서 서버로 접속할 때 아이피를 제한할 수 있습니다.

우리의 에뮬레이터는 10.0.2.2 IP를 갖고 있는데 장고 서버로 접속을 시도하다가 제한에 걸려 발생한 에러 입니다.

장고 프로젝트를 열어서 세팅파일에 들어가주세요.

그리고 ALLOWED_HOSTS 코드 부분을 찾아주세요. 저는 다음과 같이 세팅이 되어 있었습니다.

ALLOWED_HOSTS = ["localhost", "0.0.0.0", "127.0.0.1"]

 

접속 하는 호스트를 서버에서 제한할 수 있는데 지금은 위의 3개 호스트만 서버 접속에 허락하겠다는 코드입니다.

모든 호스트가 서버에 접속 할 수 있도록 다음 처럼 환경을 변경 하였습니다. (전체 허용이 아닌 필요로 하는 IP만 추가로 작성을 해주셔 됩니다.)

ALLOWED_HOSTS = ["*"]

 

서버를 다시 구동시켜주시고 안드로이드 에뮬레이터에서 10.0.2.2.:8000 으로 다시 접속 하겠습니다.

 

서버에 정상적으로 접속한 걸 확인 하였습니다.

참고하셔서 문제 해결에 도움이 되셨으면 좋겠습니다 :)

 

 

* 안드로이드 에뮬레이터 공식 문서

https://developer.android.com/studio/run/emulator-networking.html

반응형

+ Recent posts