Skip to content

Commit 430f084

Browse files
authored
Fix broken links (#63)
* Fix broken links * replace link
1 parent 2df11ce commit 430f084

File tree

10 files changed

+15
-16
lines changed

10 files changed

+15
-16
lines changed

src/content/posts/ko/end-of-2019/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ image: ./end-of-2019.png
3131

3232
> `콘샐러드`는 뱅크샐러드에서 주최하는 자체 콘퍼런스며 기술, 적응, 파이썬 등 매번 다른 주제를 다룬다.
3333
34-
#### [3차 콘샐러드 발표](https://consalad.io/3rd) - 뱅크샐러드 파이썬맛 레시피
34+
#### 3차 콘샐러드 발표 - 뱅크샐러드 파이썬맛 레시피
3535

3636
<figure>
3737
<a href="https://speakerdeck.com/jungwinter/banksalad-recipe-python-flavor">
@@ -61,7 +61,7 @@ image: ./end-of-2019.png
6161

6262
테스트 코드가 프로덕션 서비스를 넘어서 이런 템플릿 프로젝트에서조차 어떻게 귀찮음을 덜어내고 자신감을 높여줄 수 있는지 다시 한번 느낄 수 있었다.
6363

64-
#### [파이콘 한국 2019 발표](https://www.pycon.kr/2019/program/talk-detail?id=127) - 파이썬 3.7 어찌 그렇게 빨라졌나
64+
#### [파이콘 한국 2019 발표](https://blog.banksalad.com/tech/pycon19/) - 파이썬 3.7 어찌 그렇게 빨라졌나
6565

6666
<figure>
6767
<a href="https://speakerdeck.com/jungwinter/why-is-python-3-dot-7-fastest">
@@ -74,7 +74,7 @@ image: ./end-of-2019.png
7474

7575
이번에는 정말 파이콘에서 발표하고 싶었고 여러 주제를 고민했다. 주로 경험 얘기를 할까, 지식 얘기를 할까를 고민했는데 그동안의 발표로 경험에 관해선 어느 정도 풀어봤으니 지식을 정리해 전달하자고 마음먹었다. 그러다 보니 발표를 준비하면서도 '이런 내용은 찾아보면 다 나오는 얘기인데 이대로 가치 있을까', '어떻게 해야 더 쉽게 전달할 수 있을까'를 끊임없이 고민했다. 가장 도움이 됐던 건 주변인을 대상으로 한 리허설 발표였는데 피드백을 통해 어느 정도로 깊게 다뤄야 하는지, 부족한 부분은 어떻게 채울 수 있을지 가닥을 잡을 수 있었다. 발표는 더 깊게 알고 싶은 사람들에겐 아쉬움을 주었던 발표라 생각하지만, 그동안 내가 성장하는 데 많은 도움이 됐던 파이썬 생태계에 조금이나마 기여했단 점에 의의를 둔다.
7676

77-
#### [5차 콘샐러드 발표](https://consalad.io/5th) - 오픈소스 라이브러리 개발기
77+
#### 5차 콘샐러드 발표 - 오픈소스 라이브러리 개발기
7878

7979
<figure>
8080
<a href="https://speakerdeck.com/jungwinter/python-open-source-101">

src/content/posts/ko/file-on-blockchain/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,11 +168,11 @@ Solidity로 스마트 컨트랙트 코드를 작성하며 매우 많은 오류
168168

169169
- `smart contract dynamically-sized keys`: remix에서 컴파일 했을 때 나오는 에러.
170170
- [가변 키 컴파일 에러에 관한 논의](https://ethereum.stackexchange.com/questions/2397/internal-compiler-error-accessors-for-mapping-with-dynamically-sized-keys-not-y): public을 private으로 바꾸거나 getter를 만들어 줘야한다.
171-
- [public, private, internal, external 차이](https://forum.ethereum.org/discussion/3344/function-visibility-whats-the-difference-between-private-and-internal-if-any)
171+
- [public, private, internal, external 차이](https://docs.soliditylang.org/en/latest/contracts.html#visibility-and-getters)
172172
- `solidity return array`: 배열을 반환하려면 어떻게 해야하는지.
173173
- [기본적으로 불가능하지만 우회법은 있다.](https://ethereum.stackexchange.com/questions/17312/solidity-can-you-return-dynamic-arrays-in-a-function)
174174
- `web3 contract deploy parameter`: 컨트랙트를 배포할 때 생성자로 인자를 어떻게 넘겨주는지.
175-
- [web3.py 에선 args로 넘겨주면 된다.](http://web3py.readthedocs.io/en/latest/contracts.html#web3.contract.Contract.deploy)
175+
- [web3.py 에선 args로 넘겨주면 된다.](https://web3py.readthedocs.io/en/stable/web3.contract.html)
176176
- [컨트랙트를 파일로 불러와 컴파일 하기](https://github.com/ethereum/py-solc): 굳이 `compile_source`할 필요 없이 `compile_files`로 할 수 있고, 컨트랙트 파일을 리스트로 넘겨야 한다.
177177
- `contract_instance`를 contract모듈의 전역변수로 선언하고 Flask에서 불러와서 사용하려 했으나 실패함. pickle로 dump&load하려 했으나 실패함. 그냥 팩토리 만들어서 Flask 단에서 전역변수로 활용했다.
178178
- 원래는 파일을 블록체인에 저장하려 했으나 [1 MB를 저장하는데 32 ETH](https://ethereum.stackexchange.com/questions/872/what-is-the-cost-to-store-1kb-10kb-100kb-worth-of-data-into-the-ethereum-block)(2017.12.07 기준 1,760만원)가 든다기에 해시만 저장하는 식으로 선회했다.

src/content/posts/ko/flask-1.0-release/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ date: 2018-04-27
1111
1212
## Highlight change
1313

14-
- Python 2.6과 3.3 지원을 중단했다. [[pallets/meta#24]](https://github.com/pallets/meta/issues/24)
14+
- Python 2.6과 3.3 지원을 중단했다.
1515

1616
- `JSONIFY_PRETTYPRINT_REGULAR` config 값은 `jsonify()`가 반환하는 응답의 포맷을 결정하는데 이젠 debug 모드가 아닐 때 기본적으로 False로 설정되어 json 응답이 compact하게 출력된다. debug 모드에선 기본적으로 True로 설정된다. [[#2193]](https://github.com/pallets/flask/pull/2193)
1717

src/content/posts/ko/flask-concurrency-test/index.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ compute는 다른 두개의 테스트와 다르게 CPU bound 작업을 수행하
113113

114114
이 글을 쓰기 전 수행했던 테스트는 flask와 gunicorn을 조합할 때 어떤 옵션이 가장 좋은가에 중점을 두었기 때문에 flask는 기본적인 로직만 구현했고 머신의 성능이나 실무에서 쓰일법한 동작을 고려하지 않았다. 원래는 워커는 많을수록 좋겠고 스레드도 마찬가지겠는데 워커 클래스는 뭘 선택하지에서 출발했기에 아무래도 부족한 점이 있을 수 있다. 그래도 flask 앱을 gunicorn으로 배포하자고 결정할 때 작은 도움이 되길 바라며 잘못된 정보, 오타 혹은 보완할 점이 있으면 [트위터](https://twitter.com/res_tin), [메일](mailto:wintermy201@gmail.com) 등으로 알려주시면 감사하겠습니다.
115115

116-
[flask앱은 기본적으로 동기적(synchronous)]: http://flask.pocoo.org/docs/0.12/design/#thread-locals
116+
[flask앱은 기본적으로 동기적(synchronous)]: https://flask.palletsprojects.com/en/stable/design/
117117
[aiohttp 라이브러리 버전이 1.3.5 이하]: https://github.com/benoitc/gunicorn/issues/1526
118118
[`gaiohttp`를 사용하기 위한 다른 방법]: http://docs.gunicorn.org/en/latest/design.html#asyncio-workers
119119
[flask 앱을 감싸는 방법]: https://github.com/benoitc/gunicorn/blob/master/examples/frameworks/flaskapp_aiohttp_wsgi.py
120-
[Github에 올려둔 `blocking_flask.py` 코드]: https://github.com/JungWinter/Code_Study/blob/master/Python/Research/gunicorn_flask_test/blocking_flask.py
120+
[Github에 올려둔 `blocking_flask.py` 코드]: #테스트
121121
[공식 문서에서 권장하는 워커와 스레드의 개수]: http://docs.gunicorn.org/en/stable/settings.html#worker-processes
122122
[httpbin.org]: http://httpbin.org
123123
[apache benchmark tool인 ab]: https://httpd.apache.org/docs/2.4/programs/ab.html
124-
[간단한 스크립트]: https://github.com/JungWinter/Code_Study/blob/master/Python/Research/gunicorn_flask_test/gunicorn_test.py
125-
[jupyter notebook 코드]: https://github.com/JungWinter/Code_Study/blob/master/Python/Research/gunicorn_flask_test/analysis.ipynb
124+
[간단한 스크립트]: #테스트
125+
[jupyter notebook 코드]: #결과

src/content/posts/ko/hashicorp-meetup/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ HashiCorp 한국 사용자 모임이 주최하여 2018년 7월 28일 공개SW개
368368
## 그들이 서비스와 엔터프라이즈 인프라를 AWS 위에서 다루는 방법 - [박훈](https://1ambda.blog/)
369369

370370
- ZEPL, 소프트웨어 엔지니어
371-
- [슬라이드 주소](https://docs.google.com/presentation/d/17BuIWIkuh9ews6MsFimi0z1g3vt859j3cL_BBpNM95E/edit?usp=sharing)
371+
- [밋업 정리 글](https://www.44bits.io/ko/post/news--2018-seoul-meetup-of-hashicorp-krug)
372372

373373
### 문제
374374

src/content/posts/ko/list-of-lists-to-flatten/index.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,6 @@ n_lol = np.array(list_of_lists)
150150

151151
## 결과 비교 그래프
152152
성능들을 한눈에 알아보기 쉽게 하기 위해 `matplotlib`를 통해 그래프로 시각화 시켜주었다.
153-
[그래프를 생성하는 Jupyter 코드](https://github.com/JungWinter/Code_Study/blob/master/Etc/list%20of%20lists%20to%20flatten.ipynb)
154153

155154
![결과](./result.png)
156155
log스케일의 그래프임으로 x축에서 1칸의 차이는 실질적으로 10배의 차이다.

src/content/posts/ko/python-generator/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ List, Set, Dict 표현식은 iterable(이터러블)하기에 for 표현식 등
6969
* [제네레이터 `__next__()` 메서드](https://docs.python.org/3/reference/expressions.html#generator.__next__)
7070
* [제네레이터 `send()` 메서드](https://docs.python.org/3/reference/expressions.html#generator.send)
7171
* [yield 표현식](https://docs.python.org/3/reference/expressions.html#yield-expressions)
72-
* [yield 키워드 알아보기](https://tech.ssut.me/2017/03/24/what-does-the-yield-keyword-do-in-python/)
72+
* [yield 키워드 알아보기](https://www.geeksforgeeks.org/python/python-yield-keyword/)
7373
* [Generator와 yield 키워드](https://item4.github.io/2016-05-09/Generator-and-Yield-Keyword-in-Python/)
7474
* [Iterator와 Generator](http://pythonstudy.xyz/python/article/23-Iterator%EC%99%80-Generator)

src/content/posts/ko/python-make-command/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ date: 2018-06-30
55

66
파이썬을 이용해 커맨드라인 툴을 만들어 사용할 때 매번 `$ python script.py arg1 arg2`처럼 입력하기 번거롭다. 그렇다고 `setup.py`를 만들어 엔트리포인트를 설정하자니 일을 키우는 느낌이다. 이 글에서는 `$ script arg1 arg2`처럼 파이썬으로 작성한 스크립트를 간단하게 실행하는 방법에 대해 정리했다.
77

8-
> 이 포스트는 리눅스/맥 OS 기준으로 작성되었으며 윈도우 환경은 [파이썬을 명령 프롬프트에서 실행하는 방법](https://soooprmx.com/archives/6471)을 참고하길 추천한다.
8+
> 이 포스트는 리눅스/맥 OS 기준으로 작성되었다.
99
1010
## 작은 커맨드라인 툴
1111

src/content/posts/ko/python-mro/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Python 2.3 이후 아래 이미지와 같은 상속을 시도하려하면 `TypeE
2929
![](https://makina-corpus.com/blog/metier/2014/python-mro-conflict)
3030

3131
#### Reference
32-
* [INHERITANCE(상속), MRO](https://kimdoky.github.io/python/2017/11/28/python-inheritance.html)
32+
* [Python MRO 공식 문서](https://docs.python.org/3/howto/mro.html)
3333
* [What does mro do](https://stackoverflow.com/questions/2010692/what-does-mro-do)
3434
* [Python 2.3이후의 MRO 알고리즘에 대한 파이썬 공식 문서](https://www.python.org/download/releases/2.3/mro/)
3535
* [What is a method in python](https://stackoverflow.com/questions/3786881/what-is-a-method-in-python/3787670#3787670)

src/content/posts/ko/smart-contract-with-python/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ date: 2017-11-27
77
11월 21일 화요일, 블록체인 스터디에서 [web3.py](https://github.com/pipermerriam/web3.py)를 이용한 스마트 컨트랙트 배포와 활용에 대해 발표했다. 본래는 PDF파일을 블록체인에 올린 원본 증명 서비스의 간단한 개념 증명을 구현하려 했지만, 초기 계획보다 작업을 많이 하지 못해 2주에 걸쳐 작업하기로 결정했다. 이 글을 통해 **이더리움 노드를 설치해 구동시키고 파이썬을 사용해 스마트 컨트랙트를 컴파일 한 후 배포하기까지의 과정** 과 그러면서 있었던 **여러 문제 상황들을 어떻게 해결했는지** 회고하고자 한다.
88

99
## 파이썬을 사용한 이유
10-
기존에 있던 예제들을 보면 대부분 web3.js와 Node를 사용한 자료들이 많다. 반면 나는 파이썬이 제일 친숙하고 기존에 자주 사용하는 서버 스택이 [Flask](flask.pocoo.org) 였기에 이번 발표에서 파이썬 [Flask](flask.pocoo.org) 서버에서 이더리움의 스마트 컨트랙트를 배포하고, 배포된 컨트랙트와 web3.py를 이용해 상호작용하는걸 코드로 구현해 시연했다.
10+
기존에 있던 예제들을 보면 대부분 web3.js와 Node를 사용한 자료들이 많다. 반면 나는 파이썬이 제일 친숙하고 기존에 자주 사용하는 서버 스택이 [Flask](https://flask.palletsprojects.com/) 였기에 이번 발표에서 파이썬 [Flask](https://flask.palletsprojects.com/) 서버에서 이더리움의 스마트 컨트랙트를 배포하고, 배포된 컨트랙트와 web3.py를 이용해 상호작용하는걸 코드로 구현해 시연했다.
1111

1212
![](./study.jpeg)
1313

0 commit comments

Comments
 (0)