1. WSGI : 

파이썬이 웹서버와 통신하기 위한 명세서, WAS + OGI


2. RPC란? : 

마치 로컬에 있는 것처럼 원격 프로시저 / 프로그램을 호출하여 결과만을 돌려받는것.

네트워크 동작을 의식할 필요가 없다.

- 기존의 서버 클라이언트의 소켓을 통한 네트워킹은 변수가(장애가) 너무 많아서 나온 개념


3. LoRa 

wifi : 대용량 데이터, 고속 전송이나 거리제한

셀룰러 : 빠르고 장거리지만 전력소비가 심함

위 두개를 보완할 수 있는 , IOT에 적합한 프로토콜

저전력, 광역 통신망(15키로 이상, 백만 노드 수용)



4. 코딩스타일


PascalCase : 씨

camelCase : 자바

snake_case : 파이썬

UPPER_CASE: 상수



'초보 프로그래머' 카테고리의 다른 글

3일차 용어정리  (0) 2018.08.08
2일차 용어정리  (0) 2018.08.08
8월의 목표  (0) 2018.08.05
오픈소스에 대한 고찰  (0) 2018.06.05
DB 서버가 날라갔다(도망갔다...)  (0) 2018.05.25

1. 책 두권 읽고 정리

2. 스터디 : 리눅스, 생활코딩

3. 파이썬 플라스크

오픈소스, 코드리뷰, 학습, 개발자...

여러가지 좋은 말들이 많고 꼭 해야할것처럼 느껴지는데

어떠헥 접근해야할지 모르겠다.


그나마 내가 갖고 있는 강점?이 영어인데.. 이를 살리기 위해선 오픈소스 참여가 필수 인듯 하다..


방법에 대해서 고민해봐야겠다.


java matplotlib은 fork하고 이클립스도 구동하려고 하니 프로젝트 부터 잘 안불러와진다.. 답답

마지막 프로젝트 때 우스개 소리로

설마 플젝 끝난 후 디비 서버 날라가는 거 아냐? 라고 얘기 했는데

3달도 채 안되서 일이 터졌다.

웹서비스 구축을 위해 2개의 aws 서버를 연동하여 
하나는 서비스용, 다른 하나는 디비 용으로 사용 하였는데

디비 서버의 주인께서 문을 닫았다...

그리고 잠수...

후....

덕분에 리눅스 새로 배우게 되니 기분이 좋다^^

# 후... 덕분에 반 강제로 새롭게 서버도 파고 했다.

이번에 새롭게 서버를 파면서 어디를 사용할까 하다가 네이버 클라우드 플랫폼을 써보기로 했다
(아마존은 이미 사용중이고...아직 구직중이니 돈내고 쓰긴 부담 ㅠㅠ)

1. 네이버는 HDD 마이크로 서버에 한해서 1년 무료 정책을 시행중!
단 공인 ip 사용은 유료인데 이는 월 약 4300원 수준.

2. 우분투 환경에 mysql을 설치하고 세팅을 진행하였다.
- 우분투, mysql로 검색하면 세팅 방법이 자세히 나와서 큰 무리없이 하였음.

3. 네이버 플래폼을 썻을때 가장 좋았던 점은 aws를 사용할때 이게 뭐야? 라고 하던 부분에 대해 이해할 수 있었다는 점이다.
- 이전에 putty를 왜 사용하는지 몰랐는데 이번에 알게되었고
- ACG 설정을 통해서 aws에서 포트번호 깨작깨작 하던 이유를 조금이나마 이해하게 됨.

4. 다른 설정들은 큰 문제가 없었으나 2가지에서 막힘
4.1) 이클립스와 db 서버 연결시 ping failed...
- sqlyog, 워크벤치 모두 연결이 됬는데 이클립스에서만 유달리 안됬음.
- 아직도 이유를 모르겠으나 가장 유력한건 서버에서 mysql start를 안해줘서 인듯 함.
- 근데 왜 sqlyog에선 연결이 된거지...
4.2) 연결까지 모두 완료하였으나 db 입력시 한글이 insert가 안된다!
- 분명 설정에서 바꾸어줬는데 왜 그런지 이해가 안감. 내일 다시 확인해봐야지.

4.2-추가) 한글 insert가 안되는 이유
설정을 모두 utf-8로 바꾸었으나 리눅스 상? 의 문제인지는 몰라도 한글이 입력이 안된다.
결국 db 테이블을 utf-8로 바꾸어서 작동시켰다

http://goldenraccoon.tistory.com/entry/mysql-utf8-%ED%95%9C%EA%B8%80%EA%B9%A8%EC%A7%90-%EC%B2%98%EB%A6%AC-%EB%B0%A9%EB%B2%95
(도움을 많이 받았다)

제일 확실한건 db 를 모두 drop 하고 새롭게 만들면서 utf-8값을 주는 것이다.

이로서 임시방편으로 DB 서버도 살리고 웹서비스도 다시 동작하게끔 만들었다.

http://13.125.70.57:8080/

눈물난다 ㅠㅠ 이왕 이렇게 된거 코드 정리좀 하고 새롭게 도메인도 신청하고 해야겠다



주소 값 찾아오기, 주소 데이터 찾아오기, 삭제 등.

기본적인 메서드를 모두 만들었다.

단순 연결리스트의 핵심은 내 앞이 나를 설명한다는 것.

또한 무엇을 하든간에 계속해서 다음을 찾아주면서 옮겨다녀야 한다.

for, while 무엇이든간에 계속해서

head, head.next ... 반복


한가지 파이썬을 할때 간과했던 점은

비슷하지만 살짝 다른 메서드 들의 경우엔 기존의 메서드들을 재사용 하여 쓰면 훨씬 간편하게 작성할수 있다는 점?






이번 파트는 본격적인 삽입, 삭제 메서드 이다.

연결리스트의 핵심은 나를 증명해주는 것이 내 앞에 있다는 것이다.

즉 철수-영희-미자 가 있다고 하면 미자를 찾기 위해선 영희가 있어야 한다.

이러한 개념을 알고 있다 하더라도 두번째로 마주하게 되는 위기는 참조변수와 객체 부분이다.


새로운 노드를 집어넣은다고 해보자.

즉 철수 - 영희 - 유주 - 미자 처럼 만들고자 할때의 중요한 점은 위에서 말했듯이 미자를 증명하던 것은 영희라는 점이다.

즉 우리는 영희 옆에 유주가 들어가기를 원하지만 만약 이를 먼저 한다면

미자를 다시는 찾을 수 없다!!

따라서 제일 먼저 유주의 옆에 미자가 있다고 선언을 해준 후에 영희 옆에 유주를 집어 넣어야 한다.

(강사님은 장소 = 값 이라고 설명하셨는데 이 설명이 제일 간단하며 와닿는듯 하다)


이를 좀더 코드화 시켜보자면

1. 유주옆 = 미자(그런데 여기서 미자를 증명하는 것은 영희 이므로 이는 곧 영희옆 이라 쓸 수 있다)

== 유주옆 = 영희옆

2. 영희옆 = 유주

...


삭제 작업도 마찬가지이고 꼭 무언가를 넣거나 삭제하기 전에 주소를 옮겨주는 작업을 해줘야 한다는 것, 그것이 매우 중요하다.





파이썬과 함께하는 자료구조 책과 더불어

인프런에서 자바 강의를 같이 듣기로 결정. 권오흠 강사님 강좌이다.

기존에 했던것을 복습 하고 다시 리마인드 한다는 생각으로 듣는 중



파이썬 자료구조 책 공부중..

챕터2, 2.9번 문제 풀이


1. 제일 마지막 노드의 아이템을 변수에 저장

(제일 첫번째 노드 역시 변수에)

2. insert_after 메서드를 활용하여 self.head를 제일 뒤에 삽입

3. 제일 앞에 노드를 삭제

4. 제일 앞 노드와 1번에서 저장한 변수 값이 같아질때까지 실행


이 함수를 재귀로 돌리면 1번이 계속 리셋이 되서

함수 내에서 while문으로 작성함


def reverse(self):

p = self.head

for i in range(self.size -1):

p = p.next

#이를 통해서 p에 제일 마지막 아이템을 저장.

#여기서 size만큼 돌리게 되면 p에 None이 저장됨

while self.head != p:

self.insert_after(self.head.item, p):

#여기서 self.head는 node 객체(item, link)이므로 

#item만을 넣기 위해 item으로 적용

self.delete_front():


대충 기억나는건 이정도..

파이썬을 이용하여 자료구조 공부중


자료구조를 이해하기에 앞서 노드, 레퍼런스도 정리를 하면 좋다..

우선 해당 노드를 증명? 정의? 하는 것은 바로 앞이라는 점.


orange - apple - kiwi 가 있다고 할때

orange를 정의하는 것은 제일 앞에 있는 head라는 점

따라서 위에 리스트를 다시 적으면

head - head.next - head.next.next(next는 클래스에서 따로 정의) 라 할 수 있다.




스택:

노드는 뒤로 추가되고, 또한 뒤로 나간다.

즉 a, b, c, d 순으로 입력을 하게 되면

d가 제일 뒤에 오고 아웃 시켜도 d가 나온다.


이를 응용해서 1,2,3,4,5 가 순서대로 입력 될때 pop()으로 나타 낼 수 없는 수열 등의 문제가 많이 나온다.

예) 54123은 불가능.

이와 관련하여 해당 입력수들이 트루인지 거짓인지 찾는 코드 작성해봐야지...



+ Recent posts