특히 GUI 프로그래밍을 할 때 로직 부분과 GUI 부분을 쉽게 분리하기가 힘들다 또 함수를 짜다보면, 하나의 함수는 하나의 일만 하는게 제일 좋지만코딩이란게 그리 쉽던가, 어쩔때는 데이터를 변경하면서 ui를 바꿔야하는때도 있고ui가 바뀌는 핸들러에서 무언가 값을 조작해줘야하는 일도 있고..결국 다 메소드(함수) 로 분리가 잘 돼줘야 중복 코드 짤 일도 없고 적재 적소에 함수를 적절하게 잘 호출해주게 된다. 그럼 함수를 어떨때 나누느냐? 일단 크게 로직 적인 부분을 짤때를 예로 들어보자 나의 경우는 GUI프로그램을 짤 때 기본적으로 CUI 환경을 염두에 두고 함수 설계를 한다. 이렇게 할 경우의 장점은 로직 함수의 처리에 있어 기본적으로 view와의 분리가 완벽하게 된다. (함수 내에서 ui를 처리할 필..
이번에는 간단한 restful server를 만들어서, 입력된 tag의 갯수를 화면에 표시해주는 프로그램을 짜보자 일단 flask를 설치하고 (pip install flask) 기본 경로 옆에 templates라는 폴더를 만들고 그 안에 hello.html 을 만들어서 아래와 같은 내용으로 채운다 {{count}} 위의 {{count}} 부분에 tag 갯수를 표시해 줄 것이다. 이제 이전편에 짠 파서를 이용해서 아래와 같은 코드를 작성하자 from flask import Flask, render_template, request from bs4 import BeautifulSoup import selenium.webdriver as webdriver app = Flask(__name__) @app.rout..
Python의 Django를 이용해서 간단한 웹서버를 만들어보자 0. 장고 설치 pip install django 1. 프로젝트 폴더 생성 django-admin startproject get_tag_count 우선 프로젝트를 시작할 폴더로 이동한 다음 위처럼 입력해서 get_tag_count 라는 프로젝트를 생성하자. 2. 브라우저 접속 테스트 생성된 프로젝트 폴더 안으로 들어가서 아래와 같이 입력해보자 python manage.py runserver 그러면 서버가 실행된다. 이제 인터넷 브라우저를 이용해서 http://127.0.0.1:8000 으로 들어가보자 위 페이지가 떴으면 성공한것임. 이제부터 하나하나 수정해가면 나만의 멋진 웹서버를 개발 할 수 있다.
저번편에 이어서 Instagram 크롤링을 계속 해보자 먼저 할 일은 chrome process를 hidden으로 실행하는 것. 이것에 대한 정보는 거진 https://beomi.github.io/2017/01/20/HowToMakeWebCrawler/ 에서 다 얻어왔다. 아주 단순하다. chromedriver의 attribute에 headless를 추가하면 끝. 거기다가 span 태그를 통해 읽어온 '태그 갯수'에서 text만 추출하는 코드를 추가했다. from bs4 import BeautifulSoup import selenium.webdriver as webdriver url = "https://www.instagram.com/explore/tags/jmt/" options = webdriver...
파이썬을 이용해서 Instagram의 해쉬태그 갯수를 읽어와보자. 글은 의식의 흐름에따라 작성한다. 일단 기본적으로 사용할 놈들 1. requests 2. beautiful soup4 따라서 이놈들의 설치를 위해 pip install beautifulsoup4 pip install requests 를 하자 그리고 가장 기본적으로 웹페이지의 태그를 긁어와보자! import requests from bs4 import BeautifulSoup def get_html(url): _html = "" resp = requests.get(url) if resp.status_code == 200: _html = resp.text return _html url = "https://www.instagram.com/exp..
C#은 Custom Attribute를 통해 meta data 형식으로 데이터 관리가 가능하다. 디바이스를 관리하는 IDevice 클래스와 이를 상속 받은 DeviceIPhone. 그리고 이 DeviceIPhone에서 관리하는 각 Device에 대하여 Custom Attribute를 통해 다루어 보자. [SupportVendor("Apple")] [SupportModel("IPhone8", true)] [SupportModel("IPhoneX", false)] class DeviceIPhone : IDevice { ... } 우선 위처럼 사용한다. 그러기 위해선 SupportVendor과 SupportModel에 대한 Custom Attribute가 정의돼 있어야 한다. [AttributeUsage(At..
최근 host - client 시스템 하나를 설계하고 개발하고 있다. host는 당연히 하나고, client는 여러대의 device들이다. 이들은 어떤놈은 wifi로 연결되고, 어떤놈은 tcp/ip (socket)로 연결되고 어떤놈은 serial, 어떤놈은 bluetooth로 연결된다. 연결방식도 복잡하지만, 통신 방법은 더 복잡하다. 단일 규약이 아니다. 어떤건 A규약을 사용하고 어떤건 B규약을 사용한다. 예를 들어 A규약을 쓰는 놈이 메세지를 읽는 방법이 (0x72 0x30) 이라면 B규약을 쓰는 놈은 메세지를 읽을때 (0x23 0x45 0x3a)를 사용한다. host 시스템에 client device를 연결한다. 그리고 어떤 connectivity(tcp/ip, socket 등)를 쓰는지, 그리고 ..
C/C++만 하다가 C#을 공부하게 되면서 느끼는 점들이 참 많다.일단.. 확실히 byte stream 같은걸 다루는 영역에서는 C/C++이 압도적으로 좋다.또한 대용량 처리라던지 최적화 등이 필요한 부분도 C/C++이 좋다.하지만 MVVM패턴(WPF 사용시) 이라던지 효율적 구조 설계(인터페이스, 다중상속 금지) 를 활용하고 싶을땐 C#이 좋다.C#은 마치 Java, Python, C++의 장점만 섞어놓은 언어인 듯 하다.뭐 C#에 대한 얘기들은 여기서 각설하고... 이번엔 다차원 배열과 가변 배열을 살펴보겠다. 정말 정말 헷깔리는 개념이었다. 일단 C#에는 다차원배열과 가변배열이 있다. 1. 다차원 배열 (Multi Array)다차원배열은 영어로는 Multi Array라고 불리고 쉽게 아래와 같이 사..
- Total
- Today
- Yesterday
- Python
- 안드로이드
- db
- NDK
- C
- Visual C++
- 프로그래밍
- gcc
- driver
- java
- 드라이버
- android
- MFC
- jni
- it
- AWS
- jni강좌
- winapi
- kering
- 음악
- Cloud
- 리눅스
- Quiz
- algorithm
- Troubleshooting
- API
- linux
- database
- source
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |