반응형

써먹기 위해 기록하는 글!!

 

 

mac에서 react native 개발환경 구축하는 방법!

 

 

1. homebrew 설치한다.

homebrew는 맥에서 필요한 패키지를 설치하고 관리하는 맥용 패키지 관리자입니다.

>> brew --version 확인해서 없으면 다운로드 받는다.

 

 

2. node.js 설치한다.

React native는 javascript이므로 Javascript 런타임인 node js 필요하다.

>> brew install node

 

3. watchman 설치한다.

특정 폴더나 파일에 변화가 생기는 것을 감지하기 위해 설치한다. 

react-native에서는 소스코드의 추가, 변화가 일어나면 다시 빌드하기 위해 필요하다.

>> brew install watchman

 

4. react native CLI 설치한다.

>> npm install -g react-native cli

 

5. xcode 설치한다.

react-native로 ios 앱을 만들기 위해서 필요하다.

 

6. cocoapods 설치한다.

ios의 의존성 관리자이다.

>> sudo gem install cocoapods

 

7. jdk설치한다.

android 앱 만들기 위해서 필요하다.

>> brew tap AdoptOpenJDK/openjdk

 

8. android studio 설치한다.

react-native로 안드로이드 앱을 개발하려면 안드로이드 스튜디오를 설치해야 합니다. 아래에 링크를 통해 안드로이드 스튜디오 사이트로 이동하고, 설치 파일을 다운로드 합니다.

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다~

 

오늘은 파이썬을 통해 서버와 클라이언트를 만들고 통신하는 방법을 공부했습니다.

 

 

최근들어 파이썬 클린코드 라는 책을 읽으면서 

파이썬스러운(Pythonic) 코드를 짜는 것이 얼마나 중요한지에 대해서 깨닫는 중입니다.

 

 

우선 통신이란!

 

서버 - 클라이언트 사이에 데이터를 오고 가는 것을 의미합니다.

 

최소 2개의 Peer가 있어야 하는 것이지요.

 

 

파이썬에서는 socket이라는 패키지를 사용합니다.

 

서버측 플로우

 

1. 먼저 소켓 객체를 생성합니다.

 

2. bind라는 함수를 통해 생성한 소켓을 특정 호스트와 포트에 연결합니다.(길을 만들어주는 느낌으로 이해하면 됩니다.)

 

3. listen이라는 함수를 통해 클라이언트의 접속을 허용시켜줍니다

 

4. accept 함수를 통해 클라이언트의 요청이 올 때까지 기다립니다. (accept는 클라이언트 소켓과 주소를 반환해줍니다.)

>> client_socket, addr = server_socket.accept()= sㅇerver_socket.accept()

 

5. 반환된 클라이언트 소켓(client_socket)의 recv라는 함수를 통해 데이터를 받아옵니다.

 

 

클라이언트측 플로우

 

1. 먼저 소켓 객체를 생성합니다.

 

2. connect 함수를 통해 서버측 소켓과 연결합니다.

 

3. sendall 함수를 통해 메세지를 전송합니다.

 

 

위의 내용을 하나의 그림으로 정리하면 아래와 같습니다.

 

 

아래 블로그를 참고하며 공부하였습니다.

webnautes.tistory.com/1381

 

파이썬 소켓 프로그래밍 - 클라이언트 / 서버 예제

파이썬에서 소켓을 사용한 TCP 서버/클라이언트 예제에 대해 다룹니다. 클라이언트가 서버에 접속하여 통신이 시작되는 방식입니다.  1. TCP 소켓 2. 간단한 에코 서버, 클라이언트 예제 3. 쓰레드

webnautes.tistory.com

 

 

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다.

 

요즘에 장고를 공부하면서 개발을 하고 있습니다.

 

이때 아래와 같은 상황을 맞을 때 어떻게 해결하는지 기록하려고 합니다.

Error: That port is already in use 

 

상황을 보니

이미 포트가 열려있어 새로 열 수 없는 상황입니다.

 

아래의 명령어로 port 8000와 관련된 프로세스를 모두 죽이고 다시 시작하면 됩니다.

 

sudo lsof -t -i tcp:8000 | xargs kill -9

반응형
반응형

안녕하세요

알로리즘을 공부하는 개발자 Henry입니다~

 

오늘은 pip에서 패키지를 설치하려고 할 때,

패키지 설치가 안되는 현상을 해결하는 방법을 기록하려고 합니다~!!ㅎㅎ

 

 

1. 일단 저는 pip 명령어로 mysqlclient를 설치하고 싶었습니다.

>> pip3 install mysqlclient

 

그랬더니 아래과 같은 에러가 발생하였습니다.

 

OSError: mysql_config not found

파일을 찾을 수 없는 에러 같이 보입니다.

 

2. 그래서 해당 에러를 디버깅 해보았습니다.

아래와 같은 명령어를 입력합니다.

 

>> sudo apt-get install python-dev libmysqlclient-dev # sql 개발 헤더와 라이브러리를 설치해준다.

>> sudo apt-get install python3-dev # 파이썬 라이브러리도 설치해준다.

 

 

3. 위의 sudo apt-get install python-dev libmysqlclient-dev 명령어를 실행하니 아래와 같은 에러가 발생했습니다.

그리고 subprocess가 깨졌다는 오류를 발견하였습니다.

 

error: subprocess paste was killed by signal (Broken pipe)

왜 서브프로세스가 깨졌는지를 보니,

emacs를 설치하려고 했다가 깨진 것 같았습니다.

더보기

dpkg-deb: 오류: 붙여넣기 서브프로세스가 시그널 (파이프가 깨어짐)에 의해 죽었습니다 9:14 dpkg: error processing archive /var/cache/apt/archives/emacs26-common_26.3~1.git96dd019-kk1+18.04_all.deb (--unpack): '/usr/.crates2.json'의 덮어쓰기를 시도합니다. 이 파일은 ripgrep 11.0.2-1build1 패키지에도 들어있습니다 dpkg-deb: 오류: 붙여넣기 서브프로세스가 시그널 (파이프가 깨어짐)에 의해 죽었습니다 처리하는데 오류가 발생했습니다:

 

해결하기 위해 아래 명령어를 실행하였습니다.

sudo dpkg -i --force-all /var/cache/apt/archives/emacs26-common_26.3~1.git96dd019-kk1+18.04_all.deb

 

 

 

4. 이제 myslqclient를 다시 설치해보면 정상적으로 동작하는 것을 볼 수 있습니다.

>> pip3 install mysqlclient

 

 

 

이상 개발자 Henry였습니다ㅎㅎ

 

www.youtube.com/channel/UCYYao-BSPaetw7N2GFFJ-Yw

 

Henry Joo

© 2021 Google LLC CEO: 선다 피차이 주소: 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA. 전화: 080-822-1450(무료)

www.youtube.com

 

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다~~!!ㅎㅎ

 

오늘은 클라우드 서비스에서 실행중인 인스턴스(AWS 기준)에 외부에서 접근하도록 하는 방법에 대해서 기록을 해보려고 합니다.

 

1. 먼저 외부 인스턴스에 보안그룹이 있습니다.

보안그룹에서 인바운드 규칙을 아래와 같이 수정해주세요!

 

 

저는 TCP 관련 네트워크를 "모든 TCP" 를 추가해주었습니다.

기존에 생성되어있는 SSH 프로토콜 규칙은 해당 AWS인스턴스에 접근하기 위한 프로토콜입니다

 

 

 

2. 저는 인스턴스에 Django 서버를 열어주었기 때문에

setting.py를 아래와 같이 고쳐줍니다.

 

 

상단에 보시면 ALLOWED_HOSTS에 AWS인스턴스의 *퍼블릭 IP 주소를 추가해줍니다.

ALLOWED_HOSTS는 의미와 같이 허락된 HOSTS로 외부에서 접근가능하게 만들다는 것입니다.

 

 

AWS 인스턴스를 클릭하면 하단에 정보가 나옵니다

이 정보를 입력해주면 됩니다.

 

 

3. 마지막으로 장고 서버를 실행시킬 때 아래와 같은 명령어 옵션을 부여합니다.

 

 

>>python3 manage.py runserver 0.0.0.0:8000

 

0.0.0.0 옵션을 주어 외부의 모든 아이피에서 접근이 가능하도록 만들어 주었습니다.

또한 8000번(장고 기본 포트) 포트를 열어주어 AWS 인스턴스의 ip:8000으로 외부에서 접근이 가능하게 만들어주었습니다.

 

 

4. 모바일이나 다른 외부에서 해당 서버에 접근하였을 때 정상적으로 출력됩니다.

 

 

 

 

이상 긴 글 읽어주셔서 감사합니다~!

모두들 열공하세요~~!!ㅎㅎ

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다~!!

 

오늘은 Web Programming을 진행할 때 간단하게 디버깅하는 방법을 말씀드리려고 합니다.

 

웹 공부를 하면서 가장 마주치기 쉬운 문제는 어떤 변수에 값이 들어왔는지 아닌지 확인하는 경우라고 생각합니다.

 

 

이런 경우에는 간단하게 아래와 같은 java script 코드를 가지고 해결할 수 있습니다.

 

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript console.log() Method</h1>

<p>Press F12 on your keyboard to view the message in the console view.</p>

<script>

console.log("Hello world!"); <!-- 바로 여기입니다 -->

</script>

</body>
</html>

 

윗 부분을 보시면 script라는 태그 안에서 특정 값을 log로 찍어볼 수 있습니다.

 

이런 코드가 있을 때, 아래와 같이 개발하고 있던 페이지를 로딩하고 F12버튼을 누른 뒤,

상단의 Console 이라는 부분을 보면 로그가 찍히는 것을 발견하실 수 있습니다.

제가 만들고 있는 홈페이지 입니다.(Bootstrap 참조)

이런 방법은 간단한 방법이지만, 때로는 강력하게 작용할 수 있으니, 알아두시면 좋다고 생각합니다!

 

 

그럼 모두들 코로나 조심하시고, 건강하시길 바랍니다!

 

반응형
반응형

안녕하세요

알고리즘을 공부하는 개발자 Henry입니다.

 

오늘은 Django를 통해 웹 서버를 띄우고 간단한 화면을 출력해보겠습니다.

 

 

 

우선 저는 Ubuntu에서 진행하기 때문에

별도의 환경과는 다른 점 양해 부탁드립니다.

 

저는 아래 블로그를 참고하여 실습을 진행하였습니다.

velog.io/@maryoh2003/Django%EB%A1%9C-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0-kwk5p8orbd

 

Django로 웹페이지 만들기

python-django-logo.jpg 프로젝트 생성 및 준비 1. 프로젝트 생성 2. 프로젝트 폴더로 이동 3. 하위 프로그램(서브 앱) 생성 4. DB(sqlite3) 파일 생성 5. 관리자 계정 생성 6. 서버 실행 환경 설정 > 프로젝트

velog.io

 

 

1. 프로젝트 생성 및 준비

>> django-admin startproject <ProjectName>

>>  cd <ProjectName> 프로젝트 폴더로 이동

>> python manage.py startapp <AppName> 하위 프로그램(서브 앱) 생성

 

 

2. 프로젝트 이름을 mytestsite라고 하고, 서브 앱 이름을 eating이라고 지었습니다.

먼저 settings.py 파일 안에 있는 INSTALLED_APPS에서 내가 만든 서브 앱 이름을 추가해야 합니다.

 

3. 언어를 한국어로 설정하고 (기본은 영어로 되어 있다) 시간대를 한국으로 맞춥니다.

 

 

 

 

4. 다음은 path를 추가해주는데, <서브앱.urls>를 해주면 된다.

url을 분리해준다고 생각하면 된다. 하지만 서브앱 폴더에는 urls라는 파일이 없기 때문에 만들어줘야 한다.

 

 

5. 서브앱 main에서 urls.py라는 파일을 만들어 admin과 path를 import해주면 된다.

urlpatterns에는 위에 프로젝트 폴더 urlpatterns와 동일한 문법으로 경로들을 추가해 줄 수 있다.

 

 

6. 이제 본격적으로 페이지를 만들어 봅시다~!

 

✅ 먼저 서브앱 main안에 templates라는 폴더를 만들고, 또 그 안에 main(서브앱과 같은 이름의 폴더)이라는 폴더를 만든다.
✅ 그 안에 원하는 이름의 파일을 만들고 코드를 작성하면 된다.

 

 

 

아래는 index.html 테스트 코드이다.

 

 

 

7. 서브앱 폴더 안에 있는 url.py에서 만든 파일(index)의 경로를 설정해준다.

views.py를 꼭 import 해줘야 한다

 

 

8. views에서는 함수를 작성해주는데, return 함수는 꼭 작성해줘야 한다. 그래야 파일 실행이 가능하다.

 

 

 

9. 서버 실행 함수인 python manage.py runserver를 하면 이렇게 만든 페이지가 뜨는 것을 볼 수 있다.

 

 

 

10. 기본적인 페이지 띄우는 부분 성공이다!

반응형
반응형

안녕하세요~!

 

알고리즘을 공부하는 Henry입니다~

 

오늘은 제가 Django를 공부해보았습니다.

 

이전에는 Flask를 가지고 python 웹 서버를 만들었던 경험이 있는데요

 

이번에는 Django를 한번 다루어보고 싶어 도전하게 되었습니다.

 

 

프로젝트의 이름은 "오늘 뭐 먹지?" 입니다.

 

직장에 다니면서 뭘 먹을지 고민하다가 

먹은 내용들을 웹사이트에 기록해놓으면 좋겠다 싶어서 

주말이 되어 한번 만들어 보려고 합니다.

 

 

 

1. 우선 Django를 설치하기 위해서 AWS에서 Ubuntu 인스턴스를 빌렸습니다.

각자 개발용 윈도우 혹은 Mac을 사용해서 따라해 보셔도 좋을 것 같습니다.

참조:developer.mozilla.org/ko/docs/Learn/Server-side/Django/development_environment

 

Django 개발 환경 세팅하기 - Web 개발 학습하기 | MDN

Django 개발 환경 세팅하기 Jump to sectionJump to section 이제 장고가 무엇인지 알았으니, 윈도우, 리눅스(우분투), 맥 OS X에서 어떻게 장고 개발환경을 세팅하는지, 설치 후에는 어떻게 테스트하는지 

developer.mozilla.org

 

 

2. Ubuntu에 python3를 설치합니다.

장고가 Python 기반 프로젝트이기 때문에 파이썬이 설치되어 있어야 합니다.

>> python3 -V 라고 쳐서 아무것도 안 나오면, 설치하셔야 합니다.

 

>> sudo apt install python3-pip 로 설치해주세요~

 

3. 가상 환경 소프트웨어를 설치해야 합니다.

>> sudo pip3 install virtualenvwrapper

 

 

4. 각자 PC에 환경설정을 담당하는 숨김 파일 (Ubuntu 같은 경우는) bashrc에 들어가서 아래의 내용은 기입합니다.

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /usr/bin/python3 '
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh

 

 

5. 아래 내용을 입력하여 스타트업 파일을 실행시킵니다.

>> source ~/.bashrc

 

그러면 아래와 같이 뜹니다

virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/premkproject
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postmkproject
...
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/preactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/postactivate
virtualenvwrapper.user_scripts creating /home/ubuntu/.virtualenvs/get_env_details

 

 

6. 이제 장고를 설치해봅니다.

>> pip3 install django

 

 

7. 설치한 것을 확인해봅시다 (mytestsite라는 폴더를 만들었습니다.)

>> mkdir django_test cd django_test

 

>> django-admin startproject mytestsite

>> cd mytestsite

 

8. 이 폴더 내에서 runserver 명령어와 manage.py 파일을 통해 개발용 웹 서버를 띄울 수 있습니다.

>> python3 manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

October 26, 2018 - 07:06:30
Django version 2.1.2, using settings 'mytestsite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

 

 

9. 아래와 같이 뜨면 성공입니다!

(웹 브라우저를 띄워서 http://localhost:8000으로 들어가면 됩니다.)

 

 

10. 지금까지 컴퓨터에 파이썬과 Django를 설치하면 기본적인 웹 화면을 띄워보았습니다.

 

반응형

+ Recent posts