일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 웹
- 자바
- 디자인 패턴
- 안드로이드
- django
- 파이썬
- ORM
- JPA
- 파이썬3
- 자료구조
- 데이터베이스
- 장고
- Python
- HTTP
- rabbitmq
- 스프링 부트
- node.js
- bytecode
- 스프링부트
- python3
- Spring
- 보안
- 웹 개발
- java
- 스프링
- mysql
- BCI
- db
- Spring Boot
- 개발
- Today
- Total
목록개발 (99)
semtax의 개발 일지
개요 이번 포스팅에서는 python의 메시지 큐 라이브러리인 celery에 대해서 소개하고 간단한 예제를 돌려보도록 하겠습니다. Celery? Celery는, 분산 메시지 패싱을 이용해서 비동기적으로 작동하는 작업 큐 입니다. Celery를 통해서 동기 방식(Synchronous)의 작업을 비동기 방식(Asynchronus)의 코드로 바꿔 줄 수 있습니다. Celery의 장점 중 하나는, python에서 가장 많이 쓰이는 웹 프레임워크인 Django과 연동하는 기능을 공식적으로 지원한다는것입니다. Celery 공식 홈페이지에서 Django 연동 가이드도 소개해주고 있어서 상대적으로 다른 프레임워크에 비해서 연동이 쉽습니다. Celery는 기본적으로 rabbitMQ를 메시지 브로커로 사용하는것을 권장합니다..
개요 이번 시리즈에서는 사용자가 등록한 메가박스 영화의 잔여좌석을 조회해서 알려주는 프로젝트를 진행할 예정입니다. 이번 포스팅에서는, 메가박스 영화 잔여좌석 목록을 크롤링하는 크롤링 함수를 제작할 예정입니다. 메가박스 데이터 수집 일단, 메가박스에서, 영화목록 및 영화 잔여좌석 목록을 어떻게 가져오는지 분석을 해봅시다. 먼저, 아래와 같이 크롬 브라우저로 메가박스에 접속을 해줍시다. 그런 뒤, F12로 개발자 도구를 켜서 네트워크 탭을 클릭한 상태로 예매버튼을 눌러줍시다. 그리고, XHR 탭을 클릭해 줍시다. 그러면은 위 그림과 같이 메가박스 예매버튼을 클릭했을때, 크롬 개발자 도구를 통해 HTTP를 이용해서 서버와 브라우저간에 어떤 데이터가 왔다갔다 하는지 확인할 수 있습니다. 계속해서 개발자 도구를 ..
개요 이번 포스팅에서는 파이썬 테스팅 도구인 pytest에 대해서 알아보도록 하겠습니다. 테스트 코드의 중요성 맨 처음 프로그램을 짜는 사람의 입장이나, 크기가 그렇게 크지 않은 서비스를 제작할때에는, 테스트의 중요성이 크게 중요하지 않다고 느껴진다. 사실, 코드의 크기가 별로 크지 않은 경우에는 그냥 직접 돌려보면서 테스트하는게 더 빠를 수도 있다. 하지만, 프로젝트의 크기가 점점 커지고 요구사항들이 추가되어 기능이 고도화가 되는 경우, 코드의 크기도 그에 맞춰서 증가하게 되고 각 모듈간 참조하는 경우의 수가 늘어나게 되어, 특정부분에서 에러가 났을때 버그를 해결하기가 정말로 힘들어지게 된다. 특히, 한 부분을 고쳤는데 그 고친 부분때문에 다른 부분에서 에러가 나는 일도 프로그램의 크기가 큰 경우 매우..
개요 이번 포스팅에서는, node.js를 이용해서 rabbitMQ를 사용할때 메시지를 라우팅 하는 방법에 대해서 다루어 보도록 하겠다. 라우팅? 라우팅이란 단어를 처음 들어본 사람들도 있을것이고, 네트워크 시간에 간략하게나마 들어본 사람도 있을것이다. 라우팅이란 단어를 사전에서 찾아보면 아래와 같은 뜻이 나온다. 라우팅(영어: routing)은 어떤 네트워크 안에서 통신 데이터를 보낼 최적의 경로를 선택하는 과정이다. 최적의 경로는 최단 거리가 될수도 있으며, 가장 빠른 시간에 전달하는 것으로 계산될수도 있다. 라우팅은 전화 통신망, 전자 정보 통신망(인터넷 같은) 그리고 교통망 등 여러 종류의 네트워크에서 사용된다 즉 핵심은, 어떠한 "데이터 덩어리"가 목적지 까지 최단(최적) 경로로 길을 찾아가는 것..
개요 이번 포스팅에서는 파이썬에서 쉽고 편하게 HTTP(S) 요청을 보내고 받을 수 있는 Requests 라이브러리에 대해 알아보도록 하겠다. Why Requests? 사실 파이썬에는, http(s) 요청을 보내고 받을 수 있는 urllib이나 httplib과 같은 내장 라이브러리들이 존재한다. 하지만, 파이썬 내장 라이브러리들은 사용하는게 불편하다는 단점이 존재한다. 그래서 파이썬 HTTP 라이브러리로 여러가지가 나왔는데, 그 중에서 가장 많이 쓰고있는것이 바로 이 Requests 라이브러리이다. 설치 아래 명령어를 이용해서 설치를 수행하면 된다. $ pip3 install requests 일단 사용은 아래와 같이 하면 된다. import requests r = requests.post('https:/..
개요 이번 포스팅에서는 크롬 브라우저에서 안드로이드 디버깅을 할 수 있는 stetho에 대해서 알아보도록 하겠습니다. Sthetho? Sthetho는 페이스북에서 개발한 크롬 브라우저에서 안드로이드를 디버깅 할 수 있게 해주는 안드로이드 라이브러리입니다. 보통 이러한 것들을 보고 디버그 브릿지(Debug Bridge) 라고 합니다. 설치 & 사용방법 먼저 안드로이드 gradle 파일에 아래 내용을 넣어 줍니다. implementation 'com.facebook.stetho:stetho:1.5.1' 만약 retrofit이나 okhttp 등의 http 통신 내용도 보고싶은 경우 아래내용을 추가해줍니다. implementation 'com.facebook.stetho:stetho-okh..
개요 이번 포스팅에서는 스프링 부트를 이용해서 게시판을 작성하면서 발생하는 예외들을 처리하는 법에 대해서 학습을 하도록 하겠다. 입력값 검증 및 예외 처리 소프트웨어를 개발하면서 피할 수 없는 것들이 3가지가 있다. 바로 소프트웨어 버그, 입력값 검증, 그리고 장애 대응이다. 어떠한 프로그램이나 서비스를 외부에 공개한다는 것은, 전장터 한복판에 던져지는 것과 매우 흡사하다. 엄청나게 많은 트래픽, 수많은 사용자들의 이상한 값 들(id 필드에다 부동소수점이나 특수문자들을 넣는 거라던가..), 엄청나게 쌓이는 파일로 인한 용량초과, 수 많은 데이터베이스 커넥션 생성으로인한 DB커넥션 에러, 엄청나게 많은 입력값들과 그에 따른 버그, 예외사항들이 발생하게 된다. 따라서, 저러한 수 많은 예외들을 처리하지 않으..