PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2018/06/22 00:17:30
Name 시드마이어
Link #1 https://brunch.co.kr/@skykamja24/153
Subject [일반] 더 나은 프로그래머가 되는 10가지 방법
제 브런치에 올린 글을 가져왔습니다. 

이 글은 훌륭한 프로그래머 되는 법 『Becoming a Better Programmer』(피트 구들리프 지음) 을 제 나름대로 정리한 내용입니다. 큰 내용은 책에서 모티브를 얻었으나 제 생각을 많이 반영해서 재구성하였습니다.

-----------------------------------------------------------------------------------------------------------



1. 웅장한 버그

"디버깅이 소프트웨어 버그를 없애는 과정이라면, 프로그래밍은 분명 버그를 만드는 과정이다."

- 에르허르 데이크스트라, 컴퓨터 과학자


당신이 위대한 프로그램을 만들고 있는가? 어쩌면 당신은 웅장한 버그를 만들고 있을지도 모른다.

뛰어난 프로그래머는 뛰어난 수비수이다. 상대의 모든 공격에 대비한다. 비정상적인 상황까지 커버한다. 갑자기 메모리가 부족하게 된다면? 갑자기 용량이 부족해진다면? 서버에 많은 사람이 몰리게 된다면? 갑자기 아마존과 구글이 망하고, 클라우드 서버가 정지된다면??

여러 비정상적인 일은 언제나 나타난다. 지진이 일어나 전력이 끊겨 IDC의 데이터가 날아갈 수 있다. 사람들이 미친듯이 들어와서, 때아닌 디도스 공격이 펼쳐지기도 한다. 악의적인 해커가 허술한 틈새를 노리고 있을지 모른다. 회사의 보안 담당자가 비밀번호를 password123으로 했을지도 모른다.



2. 아름다운 주석

몇몇의 주석은 마치 그림판을 보는 것 같다. 개발자로써 당신의 예술성을 보여주고자 하는 마음은 이해하지만 주석으로 표현하는 것은 좋지 않다.

/************************************************************
*************************************************************
*** [경고 : 요기는 며칠있다가 제가 고칠거니까 건드리지 맙시다] *************
*************************************************************
************************************************************/

눈길을 끌기 위해 아스키 아트를 하지 말자. 긴 설명문을 적지 말자.

좋은 코드는 긴 설명문이 필요없다. 코드의 의미가 명확히 드러나지 않을 때 주석은 길어질 수 밖에 없다. 명심하자. 가장 좋은 코드는 주석을 달 필요도 없는 코드이다.



3. 평화 지킴이

각 팀마다 코드 스타일은 다를 수 있다. 그러나 혼자만 다르면 문제다. 공백을 스페이스로 할 것인지, 탭으로 할 것인지. 2칸인지 4칸인지. 혼자만 다르면 서로 피곤해진다. 칸이 다르면 코드를 잘못 이해할 확률이 비약적으로 높아지고, 다시 칸을 맞추다 팀이 붕괴될 수 있다.



4. 원인없는 똥통은 없다

남이 쓴 코드는 언제나 똥통이다. 그러나 모든 똥통엔 원인이 있다. 우리가 할 일은 도대체 왜 이런 사태가 생긴건지 알아야한다. 원인을 모르면 코드는 똥통 그대로의 모습으로 발전할 것이며, 더욱 더 크고 거대한 똥통이 될 것이기 때문이다.

모든 프로그래머가 아무 생각없이 코드를 쓰지 않는다. 코드를 적은 사람은 그게 최선이라고 생각했고, 그 안에는 적어도 논리가 존재한다. 우리가 할 일은 그 논리를 알아야하고, 과거 버전에선 어떤 논리로 진행했는지 알아야 한다. 이를 모른다면 막상 만들어놓고, 과거의 똥통을 답습하는 안타까운 상황을 맞이할 수 있다.


5. 내가 시작과 끝이노라 

당신이 천재라고 가정해보자. 당신은 매우 복잡한 기능을 기발한 알고리즘으로 구현했다. 완벽하게 기능을 구현하며 함축적이고, 아름답고, 감동적이기까지한 이 코드는 대부분의 동료들이 이해하기 어려운 수준이다. 동료 프로그래머들은 아름다운 구조를 무너뜨릴까봐 건드리기도 두렵다. 이런 코드를 쓰면 당신의 일자리는 코드가 사라질 때까지 보장되는 장점이 있다.

반면 어떤 코드는 재밌는 만화같다. 구조는 간단하고, 기능은 명확하다. 이해하기 쉽고, 기능과 기능은 분리되어있다. 코드는 더 길지라도 어렵지 않다.

코드 시인은 프로그래머의 로망이다. 그러나 우리는 팀 대결을 하고 있다. 팀원이 알아들을 수 없는 말은 의미없다. 혼자만 이해하는 코드는 혼자만 유지보수할 수 있다. 버그를 해결할 사람이 1명 뿐인 개발팀은 제대로 굴러갈 수 없다. 팀과 소통하는 코드를 쓰자.



6. 적들을 포위하라!

대부분의 버그는 몇몇의 한정적인 알고리즘에서 발생한다. 그렇지 않다고? 그 프로그램은 글렀다. 대부분의 정상적인 프로그램은 버그들이 숨어있는 장소가 정해져있다. 우리는 이 코드를 급습하기 보단 침착할 필요가 있다. 주먹구구식으로 때려잡으려하다간 새로운 빈틈으로 쏙 들어가는 버그를 볼 수 있을 것이다.

먼저 상대를 인정하고, 프로세스를 명확히 이해해보자. 각각의 프로세스 중에서 분명 냄새나는 부분이 있을 것이다. 이제 그 코드를 가두자. 한 번에 모든 버그를 잡을 순 없다. 하나하나 구역별로 단위 테스트를 진행하자. 단위 테스트를 하면서 견고한 논리를 발견해야 한다. 버그가 나타나는 원인을 명확히 알게 되면, 그때서야 우리는 제대로 버그를 고칠 능력이 생긴 것이다.



7. 나는 완벽하지 않아

프로그래밍의 세계는 정글과 같다. 누가 이길지 모른다. 데스크탑, 모바일, 태블릿, IoT 등 영역은 점점 넓어지고 쓰이는 기술은 끝이 없다. 아무리 뛰어난 프로그래머라도 모든 언어와 모든 프레임워크를 이해하지 못한다. 또한 이미 만들어진 뛰어난 라이브러리, 플러그인, 오픈소스 등을 모조리 이해한 프로그래머는 없다. 그렇기 때문에 성장을 하고자 한다면 성장할 수 있는 부분이 무한에 가깝다 할 수 있다.


뛰어난 프로그래머는 다음의 질문에 쉽게 답할 수 있을 것이다.

- [현재 무엇을 배우고 있는가?]

- [5년 후를 위해서 무엇을 배우고 있는가?]

- [당신은 겸손한 프로그래머인가?]



8. 아참! 나도 뇌가 있었지!

"개발도중 문제를 발견했을 때 가장 먼저 하는 일이 구글 검색인가?"

"남이 짠 코드를 이해하기 전에 복사 붙여넣기 하는가?"


우리에겐 뇌가 있다. 우린 생각할 수 있다. 
그러나 놀랍게도 많은 프로그래머는 생각하는 일을 힘들어한다. 이미 많은 문제들이 스택오버플로우에 풀려져있기에 그대로 가져다가 쓴다. 조금 수정해서 쓴다. 그러다가 문제가 발생하면? 다시 검색해본다.


이 루프에 빠져있다면 결코 성장할 수 없다. 늘어나는건 프로그래밍이 아닌 검색 실력일 것이다. 남이 쓴 코드는 근본적으로 남이 쓴 코드다. 내가 쓸 코드는 내가 생각해서 써야한다.



9. 이거 괜찮지 않아?

악마가 유혹한다. "이걸 만들어봐!" "이건 어때?" 개발자들은 생각보다 대단하다. 몇몇의 기능은 며칠이면 뚝딱 만들 수도 있다. 그러나 그게 꼭 좋을까?



한 프로덕트 매니저는 자신이 하는 일이 무엇인지 이렇게 대답했다.

"제 일은 괜찮은 아이디어를 [쓰레기통]으로 보내는 일입니다."


좋은 소프트웨어는 괜찮은 아이디어가 아닌 최고의 아이디어가 필요하다. 만들다보면 쉬운 아이디어는 계속 나타나기 마련이고, 모든 프로젝트는 진행되면서 온갖 아이디어들이 충돌하고, 변신하고, 승리하는 것을 반복한다. 그럴 때 우리는 최고의 아이디어에 집중해야한다. 괜찮은건 깔리고 깔렸다. 당신의 시간을 이왕이면 최고의 아이디어에 사용해라.



10. 소중한 내 몸

우린 오래 앉아 있어야 한다. 누가 지식 노동자라고 했는가? 매일 하는 끝없는 타이핑으로 손가락 운동을 하며, 하루 8시간 이상 앉아있으면서 허리, 등, 척추를 동시에 공격받는다. 안타깝게도 몇몇의 분들은 오랜 시간 앉은 자세로 인해 끔찍한 항문 질환까지 겪는다.


당신이 위대한 코드를 쓰는 [전지전능한 풀스택 개발자]여도, 몸이 이러면 코드를 쓸 수 없다.

다음의 규칙을 진리처럼 받아들이고, 모니터 옆에 붙여두자.


- 1시간 이상 앉아있었나? 잠깐만 일어나자.

- 무시하고 앉아있었나? 잠깐만 몸을 풀어주자.

- 하루종일 일만했나? 제발 몸을 풀고, 당신을 사랑해주자.



규칙적으로 스트레칭해야한다. 적극적으로 몸을 풀어주지 않으면 점점 굳어지는 근육과 처지는 뱃살만 보게 된다. 너무 오래 앉아있으면 안됀다. 당신의 항문과, 당신의 허리, 당신의 등, 당신의 눈, 기타 많은 신체 기관들은 생각보다 강하지 않다.


프로그래밍은 오래 앉아있는 대결이 아니다. 서서봐도 되고, 서서 노트에 적어보는 것도 좋다. 서서 생각해도 된다. 서서 검색해도 된다. 몸을 쭉쭉 펴주고, 눈을 잠깐 감아주는건 죄가 아니다. 물론 상사가 먹잇감을 찾아 게으름뱅이를 찾아다닐 땐 최대한 공격적으로 키보드를 두드리며, 한 마리 치타가 된것처럼 모니터를 보자. 그때가 아니라면 당신은 충분히 당신을 사랑해주어야 한다.


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
18/06/22 00:27
수정 아이콘
9번은 지금 타업계로 갔지만 정말 중요한 내용같아요
레드후드
18/06/22 02:42
수정 아이콘
8번을 읽으니 뜨끔하네요.
18/06/22 09:04
수정 아이콘
저도 8번에서 뜨끔했네요
유리한
18/06/22 02:47
수정 아이콘
짬 좀 차면 남의 코드를 보는 것 만으로도 그 사람의 성격이나 철학을 엿볼 수 있게 되더군요..
데드라인에 쫒길때 짠 코드도 티가 나고..

작년초에 본인이 짠 코드를 본인이 이해하지 못하는 코드를 본 적이 있었습니다.. 그 분은 주석이 코드보다 긴 경우도..
뭐 ios개발자랍시고 개발은 했는데 프레임웍에대한 이해가 없어요.. swift에 대한 이해도 떨어지고.. 근데 5년차였다고 들었습니다..

반대의 경우로는 자존감이 대단한 코드를 짜신분도 있었어요. 각종 신기술과 트렌드의 집합소같은 코드였는데.. 이것도 나름대로 헬입니다.. 적정기술 씁시다.. 제발..
드라마 대사처럼 한줄로 짤 코드를 열줄로 짜게되더군요..
계층은 복잡해지고 구현도 난잡해집니다..
개발은 잘하시는데 코드가 너무 독고다이였어요.
그분과 협업하지는 않아서 다행이었지만 그 물려받은 코드들 다 뜯어고치느냐 고생을 좀.. ㅠㅠ

언제나 얘기하는거지만 코드와 설계는 언제나 simple is best이고, 신입이 처음 와도 쉽게 읽히는 코드가 최고입니다..

저도 어느덧 12년차가 되었네요 ㅠㅜ
그리고 분명 누군가는 제 코드를 보며 병신같은 코드라고 욕하고있을겁니다 크크
아케이드
18/06/22 08:53
수정 아이콘
simple is best 인정합니다.
신입 때는 복잡한 코드 짜는 사람이 멋져 보였는데
경력이 쌓일수록 심플하게 만드는 사람이 멋져 보여요.
유리한
18/06/22 09:49
수정 아이콘
내공이 중후하면 현란한 초식을 펼칠 필요가 없지요.
소봉이 태조권법으로 소림사를 조진건 초식빨이 아니라 내공빨이었던 것 처럼요.

가끔 현란한 초식으로 제 눈을 어지럽히는 코드(보통은 패턴 떡칠..)에 그만 정신을 잃을때가 있는데,
패턴을 적절한 곳에 적절하게 쓰지 않고 교조적으로 적용해 둔 코드들은 예외상황이 나왔을때 투로가 전부 막혀서 빼도박도 못하는 상황에 처할때가 많죠 ㅠ
갈아엎자니 손을 안대도 되는 곳이 없고, 그냥 가자니 이건 기술부채가 너무 커지고..

감당 못할 패턴이나 프레임워크는 쓰지 맙시다 제발.. 특히 이해도 못한건 그냥 가져다 쓰지 맙시다.. ㅠㅜ
아스트랄
18/06/22 12:07
수정 아이콘
저도 어느덧 12년차가 되었습니다.크크

simple is best 라는 것에 공감하기 때문에 게시글 1번에 동의하지 않습니다.
모든 상황을 고려해서 만들다 보면 절대 simple 할 수가 없기 때문입니다.
클라우드가 죽을 걸 대비해서 소스를 짜려면 얼마나 복잡하게 만들어야 할가요.
발생빈도와 영향도를 함께 고려해서 결정해야 한다고 봅니다.
(저희 회사에서는 DB가 죽어도 서비스가 정상적으로 동작하게 만들어라 라는 말도 안되는 요청도 있었습니다.)

거기다가 유연성이 좋아야 한다고 dependency가 있는걸 마치 죄악처럼 생각하는 개발자들이 있는데
이런 것들도 코드를 복잡하게 만듭니다.
물론 dependency가 너무 묶여있는 것도 신규 요청을 처리하기 힘들게 하기 때문에 적정선이라는 것이 참 어려운 것 같아요.

그냥 말씀하시는 것에 공감해서 주저리 주저리 적어봤어요.
김성수
18/06/22 02:56
수정 아이콘
다 대체적으로 공감하는 내용들이더군요. 다만 무엇인가에 다가가기만 하려다보니 강산이 변해도 결국 내가 작성하던 프로그램은 세상에 나오지 못할 것이라는 결론에 많이 좌절하게되더군요. 그래서 10개의 항목과는 역설적으로 프로그래밍은 완벽이라는 자원을 포기해 나가는 행위라는 관점에서 더 이해하려고 노력하는 편이긴 합니다. 프로그래밍이 아닌들 뭔들 안 그러겠습니다만요.
Kunitake Miyuki
18/06/22 08:49
수정 아이콘
PL을 해보니 9번이 이해되고
나이를 먹으니 10번이 필수라는 걸 깨닫게 됩니다.
소린이
18/06/22 09:13
수정 아이콘
아 10번...... 프로그래머는 아니지만 하루종일 모니터 보는 직장인으로서 마음에 닿네요.
작은빵떡큰빵떡
18/06/22 09:15
수정 아이콘
아름답고 라인수도 적지만 팀원이 이해하기 어려운 코드를 짜는 사람 vs 길게 늘여쓰지만 대학 갓 졸업한 신입이 와도 시퀀스를 바로 이해할 수 있게 코드를 짜는사람
전 후자랑 일할겁니다. 제 자신도 그렇게 하려고 계속해서 노력중이구요.

본문에 전체적으로 공감하지만 2번 항목만 좀 비공감이 됩니다. 나에게는 쉽고 간결하고 명시적으로 보일지라도 다른 누군가에겐 직관적이지 않을 수 있거든요. 아스키 아트는 자제해야하지만 주석이 없어도 되는 코드가 좋은 코드라는건 현실적으로 불가능하다고 봅니다. 그냥 지향해야 할 방향성일 뿐이죠.
세종머앟괴꺼솟
18/06/22 09:23
수정 아이콘
(수정됨) 주석 내용 빼고 전부 다 공감... 제가 훌륭한 프로그래머가 절대 될 수 없는 이유들이군요 특히 8번 복붙 크크

다른 방향으로 참고할 만한 실용서로는 이런 것도... http://cfile204.uf.daum.net/attach/223AA043574D4688275E1F
쪼아저씨
18/06/22 09:35
수정 아이콘
SI 판에서는 8번이 불가능하죠.
빨리 찍어내고 일정 맞춰야 하는데 자기 코드를 창작하고 있으면 맨날 밤샙니다..
아참 SI판 자체가 좋은 프로그래머랑은 거리가 멀지...
유리한
18/06/22 09:54
수정 아이콘
남의 코드 가져다 쓰는건 ok 인데 제발 이해라도 해서 썼으면 좋겠어요..
이해 못한 코드 가져다 쓰는 개발자는 높은 확률로 그쪽에 문제가 생기고, 문제를 해결하는데 시간이 더 들어가버리는 듯 하더군요..
그나마 그때라도 이해하면 다행인데, 시간에 쫒긴다고 대충 땜질처리 하면 나중에 더더욱 늪에 빠짐. 크크
(뭐 좀 죄송스런 얘기지만 저도 제가 유지보수 할 코드가 아니고 납기 다가오면 어쩔수 없이 땜질 하긴 합니다만...)

창작할 필요는 없지만 최소한 모방이라도 합시다.. ㅠㅜ
쪼아저씨
18/06/22 10:01
수정 아이콘
백퍼 공감합니다.
카피 앤 페이스트 도 실력이 있어야 잘하죠.
YORDLE ONE
18/06/22 11:36
수정 아이콘
이거죠. 되는거 가져와서 쓰는데 왜 되는지 모르는..
풀하우스
18/06/22 09:57
수정 아이콘
밑으로 내려갈수록 공감되네요. 잘 읽었습니다~
글루타민산나룻터
18/06/22 10:02
수정 아이콘
10번 마음에 새기고 갑니다
Proactive
18/06/22 11:09
수정 아이콘
코드에 주석이 없을 순 없겠으나, 그냥 일반 영어문장처럼 읽히는 코드가 최고더군요.
근데 내가 하려면 왜이렇게 어려운지....
-안군-
18/06/22 11:12
수정 아이콘
굳어지는 근육과 처지는 뱃살... 제 얘기네요 ㅠㅠ
18/06/22 16:36
수정 아이콘
아서스 메네실 선생께서 말씀하셨습니다.
"누구, 저요?"
여름보단가을
18/06/22 12:28
수정 아이콘
10번은 종일 컴퓨터 앞에 있는 저에게도 해당되네요..
Supervenience
18/06/22 13:27
수정 아이콘
8번은 동의하기 힘드네요 코딩하면서 남의 코드를 배울 수 있는 좋은 기회인데
시드마이어
18/06/22 20:54
수정 아이콘
(수정됨) 8번엔 "남이 짠 코드를 이해하기 전에 복사 붙여넣기 하는가?"라는 메세지가 더 핵심인데 그 앞의 문장을 더 중요하게 보신것 같습니다.

남의 코드를 배울 수 있는 장점은 있지만, 스스로 답을 찾는 힘은 약해지는 것 같습니다. 저도 검색부터 하는 스타일인데 급하게 프로그램을 만들땐 이해하지도 못하고 배껴오곤 했습니다. 이해하지 못하고 동작하는 코드는 언젠가 버그가 발생하고, 대처가 너무 느려집니다. 그렇게 이해해주시면 어떨까 싶습니다.
도롱롱롱롱롱이
18/06/22 14:21
수정 아이콘
2번은 동의하기 힘드네요.
제가 그런 소스를 보지 못해서 그런지 모르겠지만, 2번을 외치는 분들 소스 보고 멘붕에 빠진적이 한두번이 아니어서요.
적어도 "자기가 3달뒤에 보고도 이해할 수 있는 기준" 이면 인정.
-안군-
18/06/22 16:41
수정 아이콘
주석을 안 달고도 [누구나] 이해할 수 있을만한 코드를 짤 수 있다면, 이미 코더를 넘어선 코드마스터...
커누스나 탄넨바움 선생급은 돼야 그게 가능하다고 봅니다;;;
작은빵떡큰빵떡
18/06/22 19:06
수정 아이콘
3달은 너무 적소, 1년쯤 합시다.
제 주관적인 기준이기는 하지만 아무리 개판 오분전으로 짠 코드여도 제가 만든거면 3달뒤에 봐도 다 기억나더라구요..
아마데
18/06/22 16:50
수정 아이콘
코딩/프로그래밍에 흥미 있는 문외한인데요

배우기가 어려운 편에 속하나요? 이미 시간 잡아먹는 다른 취미가 있다면 취미로 배우기는 빡세겠죠?
시드마이어
18/06/22 20:56
수정 아이콘
컴퓨터에 익숙하시면 재밌게 해보실 수 있습니다. 자신만의 홈페이지를 만드는 프로젝트나, 간단한 애플리케이션을 만드는건 누구나 할 수 있는 수준입니다. 만약 홈페이지에 관심이 있으시면 간단한 워드프레스 사이트를 만들어보고, 플러그인을 설치해보시는 것도 좋습니다. CSS를 조금 배워서 스타일링을 해보는것도 좋습니다.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
77369 [일반] 조용히 바라보며 걱정만 하고 있게 됩니다. [31] 蛇福不言10115 18/06/22 10115 11
77368 [일반] [나눔] 고양이의 학대에서 블루베리를 구해 주세요.(완료) [16] vanillabean8891 18/06/22 8891 1
77367 [일반] 구글이 코리안 헤리티지 서비스를 시작했습니다. [13] 홍승식13100 18/06/22 13100 11
77366 [일반] 어린 시절 다녔던 학원들에 대한 기억 [20] 글곰7971 18/06/22 7971 7
77365 [일반] 경복궁 펜스룰 사건의 충격적인 결말 [212] 삭제됨23314 18/06/22 23314 28
77363 [일반] 인텔 CEO 브라이언 크르자니크 사임 [28] 인간흑인대머리남캐11201 18/06/22 11201 1
77362 [일반] 중고거래 속에 쌓이는 생각들 [88] The xian13003 18/06/22 13003 12
77361 [일반] "미투 당할까봐" 쓰러진 여성 방치한 펜스룰, 사실일까? [65] 하이바라아이17257 18/06/22 17257 9
77360 [일반] 더 나은 프로그래머가 되는 10가지 방법 [29] 시드마이어8965 18/06/22 8965 13
77359 [일반] "부모님은 자신이 주의를 끌 테니 꼭 도망치라고 하셨습니다." [33] nexon11162 18/06/22 11162 7
77357 [일반] 실험적으로 입증될 수 없어도, 그래도 여전히 과학인가? [27] cheme13292 18/06/21 13292 40
77356 [일반] Daily song - 너를 공부해 of 소란 [3] 틈새시장3366 18/06/21 3366 1
77355 [일반] 내 친구는 연애 고수였다. <3> [28] aura7073 18/06/21 7073 9
77354 [일반] 동사무소 민원 관련 [최종]결론입니다. [46] 삭제됨11789 18/06/21 11789 1
77352 [일반] 동사무소 직원 민원 관련.. 결론입니다. [43] 삭제됨12291 18/06/21 12291 1
77351 [일반] 강진 여고생 실종사건 [83] 자전거도둑17120 18/06/21 17120 2
77350 [일반] 어제 저녁에 있었던 실로 기이한 경험. [35] 피카츄백만볼트10292 18/06/21 10292 13
77349 [일반] "스탠퍼드 교도소 실험" 조작? [59] 루트에리노15562 18/06/21 15562 1
77348 [일반] 무지개 다리 넘어 너 나를 반기지 마라. [28] Dukefleed7795 18/06/21 7795 27
77347 [일반] (논의 종료) 정치/사회/이슈 게시판 오픈 여부에 대해 의견수렴합니다. [211] OrBef14866 18/06/17 14866 1
77346 [일반] 눈의 여왕과 악몽의 세계 [7] Farce7357 18/06/20 7357 8
77345 [일반] (음식사진주의) 살안빠지면 예수부처알라한테 쌍욕해도 되는 2018년 상반기 다이어트 일기.JPG [25] 살인자들의섬11609 18/06/20 11609 21
77344 [일반] 교통공학 이야기 - 2. 수요예측 이론편 [11] 루트에리노8759 18/06/20 8759 8
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로