서양 철학의 뿌리. 그리스 철학과 神.

궁금합니다.
‘옛날 사람들은 무슨 생각을 하고 살았을까?’
뭐가 호기심을 충족시켜 주려나 찾다가 눈에 띈 책이에요.
그리스 철학과 神.
서양 철학의 뿌리라 부를만한 그리스 철학과 신에 대해 다룬 책입니다.
‘궁금함을 풀어 볼까?’
가벼운 마음으로 집어 들었는데,
왠지 더 미궁으로 들어가는 기분입니다.
철학은 이런 복잡한 문제의 답을 찾는 학문이 아닐까요?
원래 고대부터 현대까지 철학자 한 사람 한 사람의 저서를 읽어볼까 했었는데,
그러다간 감을 잡기도 전에 영감님 되겠다는 생각이 듭니다.
앞으로도 이 책처럼 흐름을 다룬 책 위주로 보고,
그다음에 마음에 드는 철학자 저서를 추려서 봐야겠어요.

터키 셀축 에페스-'그리스 철학과 神'

그리스 철학과 神 - 책갈피

호메로스

신들은 모두 우주만물 내지 그의 몇몇 부분을 지배하는, 따라서 인간을 지배하는 힘의 현현들이다.
그들은 모두 불사적이다.
하나의 신성, 즉 오케아노스가 존제의 근원(게네시스)이라 불리는데, 그로부터 (하늘과 땅을 포함하여) 다른 모든 신들이 유래하며 인간도 마찬가지이다.

헤시오도스

신들의 다섯 세대.

  • 시조 - 카오스
  • 두 번째 세대 - 땅, 에로스, 에레보스, 밤
  • 세 번째 세대 - 하늘, 바다, 오케아노스, 레아, 정의, 기억, 티탄족(크로노스도 그들 가운데 하나이다), 퀴클롭스들, 기간테스, 에리뉘에스, 아프로디테, 아이테르, 낮, 운명들, 분쟁과 망각(레테)
  • 네 번째 세대 - 강들, 님프들, 태양, 달, 여명, 스튁스, 레토, 헤카테, 헤스티아, 데메테르, 헤라, 하데스, 포세이돈, 제우스, 아틀라스, 프로메테우스
  • 다섯 번째 세대 - 평화, 카리테스(우아들), 페르세포네, 뮤즈들, 아폴론, 아르테미스, 아레스, 아테네, 헤파이스토스, 헤르메스, 디오니소스

제우스의 승리로 이어지는 세 가지 결정적 사건
하늘의 생식력이 땅의 충고로 크로노스에 의해 종식되고, 크로노스의 지배하에 티탄족이 다스린다.
크로노스가 레아와 땅 그리고 하늘에게 속아서 제우스와 다른 다섯 신들의 탄생을 허용하게 되는데, 그들은 땅의 충고로 올림포스로부터 티탄족에 대항한 전쟁을 벌이며 마침내 성공을 거둔다.
제우스의 최고 지배권이 모든 신들에 의해 인정되고, 티탄족이 추방되어 세계의 현 시대가 시작되는데, 이 시대에 제우스와 그에게 종속되어 있는 신들은 특별히 “좋은 것들을 주는 자들” 이다.

탈레스 (밀레토스 출신)

철학을 창조
물이 모든것의 신적인 근원이며 우주만물의 살아있는 실체다.

아낙시만드로스 (탈레스의 제자)

우주발생론적인 신을 무한하고 무규정적인(아페이론)제 1원인이라고, 즉 “그것에서 모든 하늘들과 그것들 내의 만물들이 생겨나는” 것이라고 특징지었다. 이러한 실체는 “불사적이고 불멸적”이며, 따라서 “모든 것을 포함하고 모든 것을 조종하는” “신적인 힘(토 테이온)” 이다.
무규정적 이라는 것은 원인이 그 결과로부터 “자유롭지” 않다는 것을 제외하고는 변화의 과정으로 부터 자유롭다는 것이다.

아낙시메네스

“근원은 무한하고 무규정적인 공기이다. 그로부터 현재와 과거 그리고 미래의 모든 사물들과 신들 그리고 신적인 것들이 생겨난다. 그리고 그 밖의 모든 것들은 공기의 산물들로부터 생겨난다.”
신들은 최고의 신인 공기의 단순한 변형들일 뿐이다. - 신발생론

피타고라스

불을 우주발생론적인 신, 불사적인 생명의 근원, 우주만물의 실체로서 제안했다.
피타고라스는 신성을 하나에 귀속시켰는데, 왜냐하면 그가 보기에 하나는 다함이 없는 힘을 지니고 따라서 아낙시만드로스의 무한하고 무규정적인 것과 마찬가지기 때문이며, 또한 하나는 우주적 과정에서 뿐만 아니라 우주 만물이 발생되는 대로 정확히 발생되는 수들의 계열에서도 모든 규정과 제한의 근원이기 때문이다.

피타고라스가 어떻게 해서 하나가 수들의 계열에 대해 신적인 힘을 지닌다는 결론에 도달하게 되었는지 우리는 아주 쉽게 이해할 수 있다.
하나는 자기 자신 내에 홀수들과 짝수들을 포함하는 것이다. 그리고 우리는 우주만물에 대한 아낙시만드로스의 아페이론의 힘과 홀수들과 짝수들에 대한 신적인 하나의 힘 사이에서 유사성을 볼 수 있다. 이 수들은 대립자들은 공기와 불, 낮과 밤이 아페이론에서 분리되는 것과 마찬가지로 하나로부터 도출되며 “대립자들”이다. 더 나아가 이 대립적인 수들은 변화에 종속되어 있다. 공기가 불로 변화하는 것처럼 홀수는 짝수로 이행하거나 변형되는 것이다.
피타고라스의 하나는 하나의 단순한 수가 아니다. 그것은 질서 잡힌 우주 내의 변화하는 사물들의 다수성에 대립하여 정립된 신적인 원인의 통일성에 대한 긍정이다.

하나를 숭배했지만, 여전히 하나 옆에서 하나에 의해 둘러싸인 변화하는 여럿을 알아볼 수 있었다.

크세노파네스 (콜로폰 출신의 시인)

“신들은 죽을 수밖에 없는 자들에게 처음부터 모든 것을 밝혀 주지 않았고, 죽을 수밖에 없는 자들은 시간을 두고 탐구하다가 시간이 지나면서 더 나은 것을 발견한다.”

하나인 신은 실체가 사라질 뿐만 아니라 그것이 야기하는 모든 것과 “일치한다는” 점을 제외하면 물리적 속성들 가운데 가장 미세한 것에 의해서조차 제약되지 않는 순수한 인과성과 순수한 통일로서 드러나는 지점에 도달했다. 이러한 속성들이 거의 사라짐으로써 최고의 신의 관념은 그 역사 속에서 갈림길에 도달했다.
하나인 신은 “신들과 인간들 가운데서 가장 위대”하며, 최고의 원인에 걸맞게 “그 마음의 생각으로 모든 것을 휘두른다.” 또한 하나인 신은 “모든 것을 보며, 모든 것을 생각하고, 모든 것을 듣는다.” 그는 최고로 활동적인 정신이다. 하지만 그는 “언제나 같은 곳에 머물러 있다.”
하나인 신이 “모든 점에서 똑같다.” 또는 “동일하다”(판타코텐 호모이온) “언제나 똑같다”(아에이 호모이온) 모든 것과 “결합되어 있다” 또는 “메어져 있다” (쉼퓌에 토이스 파신)

하나인 신을 확고하게 응시함으로써 변화하는 여럿은 단순한 현상들의 세계로, 즉 불생의 영원한 원인의 눈부신 광경 옆에 놓여 있는 탄생과 생성의 무상한 현상으로 희미해져갔다.

최고의 신으로부터 무가치한 모든 속성들을 제거함으로써 그 최고의 신을 찬양하고자 했다.

헤라클레이토스 (이오니아 철학자로 에페소스 출신)

변화는 오름길과 내림길이며, 우주만물은 이 길을 따라서 존재하게 된다. 왜냐하면 응축될 때 불은 습기가 되고, 이것은 함께 자리 잡아 물이 되며, 물은 응고되어 흙으로 변하기 때문이다. 이 과정을 그는 내림길이라 부른다. 그리고 이번에는 다시 흙이 용해되며 그로부터 물이 존재하게 되고, 이로부터 그 밖의 모든 것이 존재한다. 헤라클레이토스는 거의 모든 상향적 변화를 바다로부터 나오는 증발기에 돌리기 때문이다. 이 과정을 그는 오름길이라 부른다. 증발기들(아나튀미아세이스)은 땅과 바다 모두로부터 존재하게 된다. 바다로부터 온 것들은 밝고 순수하며, 땅으로 부터 온 것들은 어둡다.

사람들은 묶어주는 로고스를 그것을 듣기 전에도, 일단 듣고 나서도 이해하지 못함을 보인다. 왜냐하면 모든 것이 이 로고스에 따라서 생기건만, 내가 각각의 것을 본성에 따라 구분하고 그것이 참으로 어떠한지를 보이면서 상술하는 그러한 말들과 일들을 그들이 경험하면서도, 그들은 경험 없는 사람들로 나타나기 때문이다. 그러나 다른 이들은 깨어서 하는 모든 것들을 알아채지 못하는데, 이는 마치 그들이 자면서 하는 모든 것을 잊어버리는 것과 같다.

모든 것에 대해 동일한 이 세계는 어떤 신이나 인간이 만든 것이 아니라 언제나 있어 왔고 있을 것이며, 영원히 살아 있는 불로서 적절한 만큼 타고 적절한 만큼 꺼진다.

모든 것은 불의 교환물이고 불은 모든 것의 교환물이다. 마치 물건들이 금의 교환물이고 금은 물건들의 교환물이듯이.

불은 흙의 죽음을 살고, 공기는 불의 죽음을 살며, 물은 공기의 죽음을 살고, 흙은 물의 죽음을 산다.

너는 같은 강물에 두 번 들어갈 수 없을 것이다. 다른 물이 언제나 흘러오기 때문이다.

대립하는 것은 통합하는 것이며, 가장 아름다운 하르모니아는 대립자들의 그것이다.

보이지 않는 하르모니아가 보이는 것보다 더 강하다.

선과 악은 같은 것이다.

오름길과 내림길은 하나이며 동일하다.

이성(로고스)은 공통의 것임에도 불구하고, 많은 사람들은 마치 자신만의 지혜를 지니고 있는 듯이 살아간다.

깨어 있는 자들에게는 하나의 공통의 세계가 있다. 반면에 잠들어 있는 자들 각각은 자기만의 세계로 돌아간다.

“우리를 둘러싸고 있는 것은 이성(로고스)과 지성을 갖추고 있다. 헤라클레이토스에 따르면, 우리는 이 신적인 로고스를 호흡을 통해 빨아들임으로써 정신을 갖추게 된다. 그리고 잠잘 때는 잊어버리지만, 깨어 있는 동안에는 다시 분별력을 갖게 된다. 왜냐하면 잠들 때는 감각의 통로가 닫혀서 우리의 정신이 주위를 둘러싸고 있는 것과의 교류로부터 떨어지게 되는데, 마치 일종의 뿌리처럼 오로지 호흡에 의해서 자연적인 연결이 유지되지만, 그런 연결에서 떨어지게 되면 우리의 정신은 앞서 가지고 있는 기억력을 잃어버리기 때문이다. 그러나 깨어 있을 때에는 마치 창문을 통해서 내다보는 것처럼 다시 감각의 통로를 통해 내다보고, 둘러싸고 있는 것과 만남으로써 이성의 능력을 얻는다.” - 섹스투스 엠피리쿠스

프쉬케들은 그들이 물이 될 때 죽으며, 진흙은 물보다 훨씬 더 나쁘다.
“벌레들과 같은 방식에 따라 쾌락의 흐름들이라고 하는 습지와 진흙 속을 뒹굴고, 무익하고 어리석은 기쁨들로 살아가는 사람들이 존재한다. 이들은 돼지 같은 사람들인데, 왜냐하면 돼지는 순수한 물보다 ‘진흙에서 쾌락을 취하기’ 때문이다.”

불이 완전하다면, 왜 모든 것은 완전하지 않은 것일까? 신은 순환하는 주기들에서 전진하고 판결하며 단죄하는 동시에 모든 시간적인 불완전성들을 하나의 불로 흡수한다.

파르메니데스 (엘레아 출신)

“있지 않음이 있다”고 가르치는 “탐구의 이 첫 번째 길”을 금지하며, 그것을 “있음과 있지 않음이 같은 것이자 같지 않은 것이며” “모든 것들이 따르는 길이 자기에게로 되돌아온다”고 가르치는 탐구의 두 번째 길에 대한 금지와 결합하고 있다.

파르메니데스의 하나인 존재는 연속적이다. 그것은 하나인 불이 나누어지는 것처럼 흩어지거나 나누어지지 않는다.

파르메니데스가 말하는 구체는 사유와 있음으로 가득 차 있는 구체이며, 이러한 구체의 바깥 둘레 내지 페라스는 순수하게 지적인 경계인바, 거기에 물질적이거나 물체적인 것은 아무것도 없다.

파르메니데스는 있음이 형상이며, 있음의 형상이 “둥근 구체와 같다”고 말했다.

“두 형태 가운데 하나는 이름 붙여져서는 안 된다.”
“동시에 빛과 보이지 않는 밤으로 가득 차있다.”

엠페도클레스 (아크라가스 출신)

“있는 것은 어느 때는 자라나 여럿에서 하나로 되고, 다른 때는 다시 분리되어 하나에서 여럿으로 된다네. 소멸될 수 있는 것들의 이중적 생겨남과 있는 것들로부터의 이중적 떠나감이 존재하네. 한쪽의 생겨남은 모든 것의 결합에 의해 산출되고 파괴되며, 다른 쪽의 생겨남은 모든 것이 분리되면서 길러지고서는 사라진다네. 자리바꿈의 이 과정은 결코 멈추지 않거늘. 어느 때에는 모든 것이 사랑에 의해 하나로 합쳐지나, 다른 때에는 다시 불화의 미움에 의해 제각각 따로 떨어지네. 하나가 여럿으로부터 생겨나는 법을 배운 한, 그리고 하나가 다시 나누어져 여럿이 나오는 한, 그런 한에서 사물들은 생겨나게 되고 그것들에게는 고정된 생명이 없노라. 그러나 이러한 자리바꿈이 결코 멈추지 않는 한, 그런 한에서는 그것들은 순환 속에서 부동의 것들로 늘 있노라.”

“불과 물과 흙과 한없이 높은 공기, 파괴적인 불화는 이들과 떨어져 있고 어느 면에서나 이들과 맞먹으며, 사랑은 이들 한가운데에 있고 길이와 폭에서 이들과 동등하다네.”

“동등하며 서로 같지만, 각기 서로 다른 권한의 주인이고, 각각에게는 자기만의 성향이 있거늘, 시간이 순환함에 따라 번갈아 힘을 떨치네.”

불화가 사랑과 다른 네 가지 위대한 신들의 완전한 분리를 초래하고 스파이로스의 완전성으로부터 가장 멀리 떨어져 있는 존재 양식의 원천인 까닭에, 불화는 정당하게 악마와 동일시될 수 있는 인과적 힘이다.

아낙사고라스 (클라조메나이 출신)

모든 사물은 함께 있었고, 수[또는 양]에서도 작음에서도 무한했다. [이는] 작다는 것 역시 한정이 없었기 때문이다. 또한 모든 것이 함게 있으므로 그것들 중 어떤 것도 작음으로 인해 분명하게 식별되지 않았다. 왜냐하면 공기와 아이테르 둘 다 무한하게 있어서 그것들이 모든 것을 장악하고 있었기 때문이다. 공기와 아이테르가 모든 것을 장악하고 있었던 까닭은 모든 것들 속에 양에서나 크기로나 최대한으로 들어 있기 때문이다.

작은 것의 가장 작은 것도 없으며, 오히려 언제나 더 작은 것이 있기 때문이다. 왜냐하면 있음이 있지 않음일 수 없으니까. 그리고 큰 것의 더 큰 것도 언제나 있다. 그리고 큰 것의 양은 작은 것의 양과 같다. 각각의 것은 그 자체로 크기도 하고 작기도 하다.
(이러한 표현은 엘레아적인 논의들로부터 유래한다. 여기서 아낙사고라스는 있음의 연속성을 주장하고 있는데, 거기서 각각의 것(현상)은 절대적이 아니라 상대적인 크기를 지닌다.)

큰 것과 작은 것에 속하는 몫(부분)들의 수효가 같기 때문에, 그래서 각각의 모든 것 속에 모든 것이 있을 수가 있다. 모든 것들은 따로 떨어져 있을 수 없고, 오히려 모든 것들은 각각의 모든 것의 부분을 공유한다. [절대적으로] 가장 작은 것이 있을 수 없으므로 그것은 불리될 수 없으며, 또한 스스로 생겨날 수도 없을 것이고, 오히려 처음과 마찬가지로 지금도 모든 것은 함께 있다. 또 모든 것 속에는 많은 것이 들어 있으며, 분리되어 나오는 것들의 더 큰 것들과 더 작은 것들 속에는 같은 수효의 것들이 들어 있다.

아낙사고라스의 최고의 신은 무한하고 무규정적이면서도 한정된(호리스메노스) 공기이자 프쉬케, 즉 신들과 우주 그 자체를 포함하여 크고 작은 모든 살아있는 존재들 내의 생명의 원인인 아낙시메네스의 최고의 신과 동일하다.

누스(정신)는 모든 변화의 원천이며, 모든 운동의 원인이다.

레우키포스 (엘레아에 있는 파르메니데스학파의 일원)

어떤 것도 아무렇게나 생겨나지 않는다. 오히려 모든 것은 이성(로고스)에 따라서, 그리고 필연(아낭케)에 의해 생겨난다.

“행복은 가축 때나 금에 거주하지 않는다. 프쉬케가 신성의 거처이다.”(FV, 55 B 171)



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

휴대성 좋은 블루투스 키보드. 아이락스 IRK05BN.

키보드-'아이락스 블루투스 키보드 IRK05BN'

키보드-'아이락스 블루투스 키보드 IRK05BN'

노트북에 연결해 쓸 휴대용 키보드를 찾다가 아이락스 IRK05BN을 발견했습니다.
원래 유선 키보드를 사려다가 블루투스 키보드 한번 써보자는 생각에 샀어요.
블루투스 키보드는 처음이네요.
우선 휴대성은 만족스럽습니다.
크기도 적당하고 가벼워요.

블루투스 키보드를 구매하기 전에 사용기를 좀 읽었습니다.
‘아! 정말 키감이 나빠서 못쓰겠다!’
‘키감은 기대하지 않는 편이 정신 건강에 좋습니다.’
근데 뭐. 이 정도면 나쁘지 않아요.
조그마한 휴대용 키보드에 기계식 키보드 같은 키감을 기대할 순 없잖아요?
나름 괜찮은 키감입니다.
한가지 좀 불편한 건, 제가 쓰는 리눅스에서 연결할 때마다 키맵을 재설정해 줘야 한다는 거에요.
하지만 크게 신경 쓰일 정도는 아닙니다.
또 한가지 아쉬운 건 왼쪽 기능키 모음 부분인데요.
Fn 키가 오른쪽에도 있으니,
Fn 키를 빼고 다른 키 크기를 더 키워 놓았으면 좋았겠다는 생각이 듭니다.
아니면 Alt 키와 Fn 키 위치가 바뀌던가요.

뭐 그래도 들고 다니기 좋은 녀석이니까 만족합니다.
제가 이 키보드를 산 목적에 잘 맞으니까요.
아이락스 IRK05BN.
그럭저럭 쓸만한 블루투스 키보드입니다.



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

배가 많이 고프다면? 신포동 돈까스 전문점 씨싸이드.

입구-'신포동 돈까스 전문점 씨싸이드'

씨싸이드는 20년 넘게 운영 중인 전통 있는 경양식 집입니다.
자주 지나다니는 신포동 길목에 있어서 한번 들어가 봤어요.
딱 저녁 먹을 시간이었지요.
배가 출출한 상태에서 음식을 시켰습니다.

샐러드-'신포동 돈까스 전문점 씨싸이드'

샐러드가 예쁜 그릇에 담겨 나오네요.
드레싱에 땅콩을 넣었는지 고소합니다.
보편적인 드레싱에 비해 특색있더라고요.

비프까스-'신포동 돈까스 전문점 씨싸이드'

샐러드가 나오고 조금 더 기다리니 주문한 음식이 나왔습니다.
저는 비프까스를 먹었지요.
맛은 보통이에요.
그런데 양이 참 많습니다!
돈까스는 3장.
비프까스는 2장이 나왔거든요.
배가 많이 고플 때 가면 양에 만족하실 겁니다.
아주 배고픈데 간에 기별도 안 가게 나오면 맛있어도 아쉽잖아요.^^;

대략적인 가격은 다음과 같습니다.

  • 돈까스 : 8,000원
  • 비프까스 : 9,000원
  • 정식 : 10,000원

씨싸이드.
가격 대비 괜찮은 경양식집이에요.

신포동 돈까스 전문점 씨싸이드 약도


크게 보기



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

개발이 끝났다면? NGINX서버와 supervisor를 써서 배포해 봅시다.

NGINX

/etc/nginx/nginx.conf
http {
keepalive_timeout 65;
gzip on;
add_header Cache-Control private;
gzip_static on;
gzip_http_version 1.1;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
gzip_types application/x-javascript text/css *;

map $http_x_requested_with $nocache {
default 0;
XMLHttpRequest 1;
}

include /etc/nginx/sites-enabled/*;
}

/etc/nginx/sites-available/myapp.conf

server {
listen 80;
server_name _;

root /path/myapp;

access_log /path/myapp/logs/access.log;
error_log /path/myapp/logs/error.log;

proxy_cache_bypass $nocache;
proxy_no_cache $nocache;

location /static {
expires modified +24h;
alias /path/myapp/application/frontend/static-build;
}

location /api/_uploads {
expires modified +24h;
alias /path/myapp/images;
}

location / {
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 30;
proxy_read_timeout 30;
}
}

* static 폴더를 설정할 때 주의 점
root를 사용할 땐 static 폴더의 상위 폴더를 지정하고,
alias를 사용할 땐 static폴더를 지정한다.

Upload file size setting
client_max_body_size

권한이 필요합니다. 오류 해결.
error log.
2013/07/10 18:31:54 [crit] 23626#0: *127 stat() "PATH" failed (13: Permission denied) request: "GET PATH HTTP/1.1", host: "localhost", referrer: "http://localhost/"
chmod 751 PATH
all path in PATH should have access permission.
PATH에 모든 경로에 접근 권한이 필요하다.
예) /home/example/applications/myapp 경로에 접근해야 할 땐.
/ , /home, /home/example, /home/example/application, /home/example/applications/myapp 에 접근 권한이 필요하다.

location 설정
인덱스 파일이 없을때 오류 처리와 디렉토리 목록을 보여준다.
autoindex on;

설정 파일 심볼릭 링크 걸기
ln -s /etc/nginx/sites-available/myapp.conf /etc/nginx/sites-enabled/

Arch Linux 기준 nginx 서버 실행과 정지.
sudo systemctl start nginx
sudo systemctl stop nginx


supervisor

/etc/supervisor.d/myapp.ini
[program:myapp]
command = gunicorn --debug --log-level debug -w 4 -b 127.0.0.1:8000 wsgi:application
; command = twistd web --port 5000 --wsgi wsgi.application
directory = /path/myapp
user = root
autostart=true
autorestart=true
; stdout_logfile=NONE
; stderr_logfile=NONE
; Handy for debugging:
stdout_logfile=/var/log/supervisor/webapp.stdout
stderr_logfile=/var/log/supervisor/webapp.stderr

supervisor 실행법
데몬 실행(테스트를 위해 프론트에서 실행함)
sudo supervisord -n
변경사항을 다시 읽고 업데이트 함.
sudo supervisorctl reread
sudo supervisorctl update
supervisor 실행
sudo supervisorctl start myapp
supervisor 재실행
supervisorctl restart webapp


※ 만약 고정 아이피에서 서비스를 한다면 gunicorn을 실행할 때 localhost가 아닌 고정 아이피 주소(예: gunicorn -b 123.456.789.000:8000)로 실행해야 외부에서 접근이 가능하다.
물론 nginx설정도 그에 맞게 변경해야 한다.

참고 자료



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

데이터베이스 마이그레이션 관리를 간편하게! alembic.

alembic은 파이썬 SQLAlchemy DB Toolkit과 연동하여 마이그레이션 관리를 돕는 편리한 도구입니다.

프로젝트 폴더로 가서 alembic을 초기화 한다.
alembic init alembic

alembic.ini파일에서 데이터 베이스를 설정해 준다.
sqlalchemy.url = mysql://scott:tiger@localhost/test

마이그레이션을 자동으로 생성하기 위해 다음을 alembic/env.py에 추가한다.
import os, sys
sys.path.append(os.getcwd())
from application import db
target_metadata = db.Model.metadata

* 자동 생성에서는 테이블명이나 컬럼명을 변경한 것은 감지하지 못한다.

다음 커멘드를 이용해 자동으로 마이그레이션을 생성한다.
alembic revision --autogenerate -m "Added account table"

DB를 새 마이그레이션으로 업그레이드 하려면?
alembic upgrade head

원하는 마이그레이션으로 업그레이드 하거나 다운그레이드 하려면?
$ alembic upgrade +2
$ alembic downgrade -1

alembic 튜토리얼



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

참치 맛집. 선릉 참치그라.

입구-'선릉 참치그라'

친구의 오랜 단골 참치 집 참치그라.
그동안 위치가 여러 번 바뀌었다고 해요.
조그만 지하에서 시작해서 이번에 3층으로 이전을 했답니다.
저는 이번이 처음 방문이었어요.
테이블이 방으로 나뉜 구조로, 벗과 조용히 담소를 나누기 좋습니다.

참치-'선릉 참치그라'

참치 집이니 참치 맛을 보아야겠지요?
아주 만족스럽습니다.
맛있는 부위를 많이 주시네요.
다른 건 거의 집어 먹지도 않고,
참치 단백질로 배를 채웠습니다.
먹성이 좋던 때 갔다면 아마 식도까지 참치로 채웠을 거에요.
맛도 좋고 사장님도 친절한 참치그라.
참치 맛집입니다!


크게 보기



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

한의학 고전. 황제내경.

뭔가 신비로움이 감도는 황제내경.
제목만 수백 번 들었지, 어떤 내용인지 한번 훑어보지도 않았습니다.
‘황제내경. 언제 한번 읽어보고 싶은데…’
황제내경을 간략하게 추려놓은 이 책을 발견하면서 그 기회가 생겼습니다.
책이 얇아 금방 읽을 줄 알았는데, 책장이 어렵사리 넘어가네요.
특히 경락에 관한 이야기는 너무 어려웠습니다.
하긴 황제내경 한번 읽고 경락을 이해하면 한의사 해야죠.
그래도 경락과 음양오행, 사계절 건강법까지 폭넓게 다루고 있어,
인체를 이해하는 데 큰 도움이 됩니다.
황제내경을 읽으며 이런 생각이 들었습니다.
‘손가락 하나 확실히 알기도 어려운데,
자신을 온전히 알아가기는 또 얼마나 어려울 것인가?’
그래서 가장 알고 싶은 것을 먼저 공부하고, 가장 하고 싶은 것을 먼저 해야만 합니다.
세상 모든 것을 알기 어렵고, 모든 일을 다 하지도 못하기 때문입니다.

황제내경 - 책갈피

오행표

방위동방남방중앙서방북방
하늘바람열기습기건조함찬 기운
나무(木)불(火)흙(土)쇠(金)물(水)
신맛쓴맛단맛매운맛짠맛
냄새누린내탄내향내비린내썩은내
장기심장비장신장
힘줄피부와 털
증세힘줄의 경련근심딸꾹질기침전율
얼굴
소리외침웃음소리노랫소리곡소리신음소리
푸른색붉은색노란색흰색검은색
감정노여움기쁨사려걱정두려움
각(角)치(徵)궁(宮)상(商)우(羽)
행성목성화성토성금성수성
가축돼지
곡식보리기장
숫자87596

경락

수태음폐경은 왼쪽 가슴부터 왼손 엄지까지 이어지며, 중부에서 소상까지 아래로 흐른다.
수양명대장경은 오른손 검지부터 오른팔 바깥쪽을 따라 왼쪽 뺨까지 이어지며,
상양에서 영향까지 위로 흐른다.
족양명위경은 오른쪽 얼굴부터 오른발 검지까지 이어지며, 승읍에서 여태까지 아래로 흐른다.
(눈에서 이마까지 턱을 따라 완만한 곡선으로 올라갔다가 내려간다.)
족태음비경은 왼발 엄지에서 왼쪽 겨드랑이까지 이어져 있으며,
은백에서 대포까지 위로 흐른다.
수소음심경은 오른팔의 겨드랑이 부근에서 오른손 소지까지 이어지며,
극천에서 소충까지 아래로 흐른다.
수태양소장경은 왼손 소지에서 왼쪽 귀까지 이어지며,
소택에서 청궁까지 위로 흐른다.
족태양방광경은 인중에서 왼손 소지까지 이어지며,
정명에서 지음까지 아래로 흐른다.
(오금에 위치한 위중에서 등의 오른쪽인 부분으로 올라갔다가 다시 지음으로 내려온다.)
족소음신경은 왼발바닥부터 목가지 이어지며, 용천부터 유부까지 위로 흐른다.
수궐음심포경은 오른쪽 겨드랑이부터 오른손 중지까지 이어지며, 천지에서 중충까지 아래로 흐른다.
수소양삼초경은 왼손 약지부터 왼쪽 눈 부근까지 이어지며, 관충에서 사죽공까지 위로 흐른다.
족소양담경은 왼쪽 눈 부근부터 왼발 약지까지 이어지며, 동자료부터 족규음까지 아래로 흐른다.
족궐음간경은 오른발 엄지부터 오른쪽 가슴까지 이어지며, 대돈부터 기문까지 위로 흐른다.
독맥은 몸 뒷쪽의 항문 뒤쪽부터 이마까지 이어지며, 장강에서 은교까지 위로 흐른다.
임맥은 몸 앞쪽의 항문 앞쪽부터 입술 아래까지 이어지며, 회음에서 승장까지 위로 흐른다.

사계절 기운에 감응하는 삶

봄철 석 달은 발진(發陳: 생겨남과 펼쳐짐)
밤에 잠자리에 들고 아침에 일어난다.
머리를 풀고 옷 매무시를 편히 해서 몸을 속박치 않게 한다.
의지에 생기가 돋게 한다.
살리되 죽이지 않는다.
주되 빼앗지 않는다.
상을 주되 벌은 주지 않게 한다.

여름철 석 달은 번수(蕃秀: 번성과 성취)
밤에 잠자리에 들고 일찍 일어난다.
여름날 낮이 길어 무더운 것을 싫어하지 않는다.
의지가 격노하지 않게 한다.
정신을 풍성하게 한다.
몸 속의 기운이 마치 밖을 즐기듯 밖으로 뻗어나가게 한다.

가을철 석 달은 용평(容平: 수용과 평안)
일찍 잠자리에 들어 일찍 일어난다.
마음의 움직임을 편안하게 한다.
만물이 조락하는 엄숙한 기운을 피한다.
정신의 기운을 거두어 들이고 가을의 기운을 화평하게 한다.
의지가 밖으로 향하지 않도록 하여 폐장의 기운을 맑게 한다.

겨울철 석 달은 폐장(閉藏)
일찍 잠자리에 들고 늦게 일어나되 반드시 해가 떠오르는 것을 기다려야 한다.
의지를 엎드려 숨어 있는 것같이 하여 밖으로 나가지 못하게 한다.
유유자적한다.
기운이 몸 속에 머무르게 한다.
추위를 멀리하고 따뜻하게 한다.
땀을 흘려 피부로 양기가 너무 많이 빠져나가지 않게 한다.

하루를 사계절로 나누면 아침은 봄이고 낮은 여름이며 저녁은 가을이고 한밤중은 겨울입니다.
아침이 되면 인체의 정기가 생겨나고 병기(病氣)는 쇠퇴하기 때문에 아침에는 아픔이 덜합니다.
낮에는 인체의 정기가 자라서 사기를 이기므로 안정됩니다. 저녁에는 인체의 정기가 쇠퇴하고 사기가 발생하기 시작하므로 병이 좀 심해집니다. 한밤중에는 인체의 정기가 장부로 들어가 숨어버리고 사기만 홀로 몸에 머물기 때문에 병이 심해지는 것입니다.

뇌·수·골·맥·담·여자포(女子胞: 자궁을 말한다)
땅의 기운에서 생겨난 것으로 모두 음을 저장하고 땅을 본받았기 때문에 감춰두고 내버리지 않는다.
위·대장·소장·삼초·방광
하늘에서 생겨난 것으로 하늘의 기를 본받았기 때문에 내보내지만 검춰두지는 않는다.

일반 맥진법

촌구(寸口) : 손목관절에서 팔꿈치의 관절 쪽으로 약 2~3센티미터 되는 곳에 위치한다.
관상(關上) : 촌구맥에서 1촌정도 되는 곳이다.
척중(尺中) : 관상에서 1촌 정도 되는 곳이다.
둘째·셋째·넷째 손가락을 붙여서 이곳에 가만히 대고 맥을 가늠한다.

맥이라는 것은 혈이 모이는 곳입니다. 맥이 길면 기가 화평한 것이고, 맥이 짧으면 병이 난 것이며, 맥이 빨리 뛰면 가슴이 답답한 것이고, 맥이 크면 병이 계속 발전하는 것입니다. 촌구의 맥이 크면 사기가 위에서 막힌 것으로 호흡이 가빠지고, 척(尺)부위의 맥이 크면 사기가 아래에 체한 것이므로 배가 부풀어 오르며, 대맥(大脈)이면 오장의 기가 쇠약해진 것이고, 맥이 가느다랗게 느껴지면 정기가 줄어든 거이며, 맥이 뻑뻑하면 심장에 통증이 있는 것이고, 맥의 흐름이 마치 샘물이 솟아오르는 듯하면 병이 나쁘게 진행되어 기색이 나빠진 것이며, 맥이 미세하고 힘이 없어 마치 활시위가 갑자기 끊어지는 것과 같으면 죽게 됩니다.

머리는 정기와 신명이 있는 곳인데, 만일 머리를 아래로 숙인 채 위로 들지 못하고 눈이 푹 꺼져 있으면 장차 정신이 탈진하려는 것입니다. 등은 흉중(胸中)이 있는 곳인데, 등이 굽거나 어깨가 아래로 처지면 장차 심장과 폐에 이상이 생기려는 것입니다. 허리는 신장이 있는 곳인데, 허리를 돌리지 못하면 신장이 장차 못쓰게 되려는 것입니다. 그리고 무릎은 힘줄이 있는 곳인데, 무릎을 굽혔다 폈다 하지 못하고 걸을 때 지팡이에 의지한다면 힘줄이 장차 못쓰게 되려는 것입니다. 뼈는 골수가 있는 곳인데, 오래 서 있지 못하고 걸을 때 몸을 휘청거리면 뼈가 장차 못쓰게 되려는 것입니다. 오장의 기가 강건하면 살고 그렇지 못하면 죽습니다.

봄에는 맥이 원을 그리는 컴퍼스처럼 원활하고, 여름에는 맥이 직각을 그리는 굽은 자처럼 크고 넓으며, 가을에는 맥이 물 위에 떠 있는 머리카락처럼 가볍고 깔깔한 것이 양팔 저울기 균형을 맞추는 듯하며, 겨울에는 맥이 가라앉고 무거워 저울추가 처지듯 아래로 잠깁니다.

사람이 숨을 한 번 내쉴 때 맥이 두 번 뛰고, 숨을 한 번 들이마실 때 맥이 두 번 뛰며, 호흡하고 나서 멈춘 사이에 다섯 번 뛰고, 호흡을 정지했을 때 남은 것을 다 하지 못해 한 번 더 뛰는데 이러하면 건강한 사람[平人]입니다.

낙맥에 침을 놓을 때는 반드시 그 혈이 모인 곳에 놓아야 하며, 혈이 모이지 않았다면 급히 침을 놓아 그 사기를 빼내어서 혈이 따라나오게 해야 합니다. 사기가 속에 머물러 있으면 비증(痺症: 뼈마디가 저리고 부어서 매우 아픈 증상. 류머티즘)이 나타납니다.
낙맥을 살필 때 그 색이 푸르면 한증이고 통증이 있는 것이며, 색이 붉으면 열증입니다. 위장 속에 한이 있으면 수어(手魚: 엄지손가락의 본 마디 사이에 있는 풍만한 살)의 낙맥이 대부분 청색이고 위장 속에 열이 있으면 어제락(魚際絡: 엄지손가락 밑 부분에 있는 살이 통통한 부위의 혈관과 신경을 총칭)이 붉은 색입니다. 그 낙맥이 시커멓게 나타내는 것은 사기가 오랫동안 머물러 비증이 된 것이고, 낙맥에 붉은색, 검은색, 푸른색이 함께 나타나는 것은 한열이 왕래하기 때문이며, 색이 푸르고 호흡이 가쁜 것은 원기가 부족하기 때문입니다.

다섯 가지 실함도 죽음에 이르고, 다섯 가지 허함도 죽음에 이릅니다.
맥이 성대하고, 피부에 열이 나며, 배가 부어오르고, 대소변이 통하지 않으며, 가슴이 답답하면서 눈에 불꽃이 튀는 것을 다섯가지 실함이라고 합니다.
맥이 미세하고, 피부가 차며, 원기가 허약하고, 대소변이 새어 나가며, 음식을 먹지 못하는 것을 다섯 가지 허함이라고 합니다.
다섯가지 허함에 속하는 사람이 국이나 죽이 위장에 들어가 설사를 멎으면 회복되어 살 수 있고, 다섯 가지 실함에 속하는 사람이 땀이 나고 대소변을 보면 살아날 수 있습니다.

푸른색과 검은색은 통증을 나타내고, 노란색과 붉은색은 열증을 나타내며, 흰색은 한증을 나타냅니다.

한병(寒病)은 열약(熱藥)으로 치료하고, 열병(熱病)은 한약(寒藥)으로 치료하며, 병이 경미하면 역치(逆治){차가움에 뜨거운 약을, 뜨거움에 차가운 약을 쓰는 방법.}법을 쓰고, 병이 심하면 종치(從治){뜨거움에 뜨거움을, 차가움에 차가운 약을 쓰는 방법.}법을 씁니다.

병에는 표(標: 가지)와 본(本: 뿌리)이 있다.

사람이 술을 마시면 술도 위에 들어가는데 음식물은 아직 소화되지 않았는데도 술이 먼저 소변으로 배출되는 까닭은 무엇입니까?
술은 곡식을 발효시켜 만든 액이며 그 기는 맑습니다. 그러므로 음식물보다 나중에 들어가나 먼저 소변으로 나오는 것입니다.

사람을 나무와 비교하여 말한다면 어떻습니까?
나무가 상했다고 할 때는 모두 그 가지가 상한 것을 뜻합니다. 가지가 강하거나 무르거나 간에 단단하기만 하다면 덜 상할 것입니다. 마찬가지로 사람 또한 뼈와 관절, 피부, 주리가 단단하지 않으면 사기가 들어와 항시 병에 걸리는 것입니다.

기쁨이나 노여움을 절제하지 못하면 오장이 손상되는데, 오장이 상하는 것은 병이 음에서 생기기 때문이다.
한사가 몸이 허약해진 틈을 타서 침범하면 병은 몸의 아랫부분에서 생긴다.
풍사나 우사가 몸이 허약해진 틈을 타서 침범하면 병은 몸의 윗부분에서 생긴다.

더 읽을 거리

가노우 요시미츠, <<중국 의학과 철학>>, 한국 철학사상연구회 기철학분과 옮김(여강, 1992)
김용옥, <기철학이란 무엇인가>,<<도올논문집>>(통나무, 1992)
마르크스 칼덴마르크,<<노자와 도교>>,장원철 옮김(까치, 1993)
소광섭, <오행의 수리물리학적 모형>, <<과학과 철학>> 제 4집, 과학사상연구회 엮음(통나무, 1993)
앵거스 C.그레이엄, <<음양과 상관적 사유>>, 이창일 옮김(청계, 2001)
양계초·풍우란 외, <<음양오행설의 연구>>, 김홍경 엮고 옮김(신지서원, 1993)
유아사 야수오, <현대과학의 도양적 심신론>, <<기술과학고 졍신세계>>, 박희준 옮김(범양사, 1988)
이시다 히데미,<<기 흐르는 신체>>, 이동철 옮김(열린책들, 1996)
전창선·어윤형,<<음양이 뭐지>>(세기, 1994)
하야시 하지메, <<동양의학은 서양과학을 뒤엎을 것인가>>, 한국철학사상연구회 기철학분과 동의과학연구소 옮김(보광재, 1996)
한형조, <<왜 동양철학인가>>(문학동네, 2000)
<<황제내경강의>>, 김창민 외 옮김(정담, 1999)
<<황제내경소문·영추>>,홍원식 옮김(전통문화연구회, 1992·1994)
<<과학사상>>(범양사)

전통의학정보포털



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

인천 신포동 오래된 대폿집. 다복집.

입구-'신포동 다복집'

입구-'신포동 다복집'

자주 지나다니는 거리에 있는 오래된 대폿집입니다.
저보다 나이가 많은 가게에요.
편안한 분위기에 가격도 착해서 가볍게 막걸리 한잔 걸치기 좋은 곳이죠.
단 밤 열 시 좀 넘으면 문을 닫기 때문에 너무 늦게 가면 안 돼요.

막걸리-'신포동 다복집'

새우 튀김-'신포동 다복집'

뭘 먹을까 고민하다 막걸리와 새우 튀김을 주문했어요.
일식집 튀김 방식이 아닌 분식집 방식 튀김인데 맛은 썩 괜찮습니다.
그리고 기본으로 나오는 김치와 동치미가 제대로 맛있어요.
앞으로도 한잔 걸치러 종종 찾아야겠습니다.
이런 대폿집이 집 가까이 있어서 참 좋네요. :D



크게 보기



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

로드리게스. 멋진 가수 아저씨 이야기.

이 영화를 보기 전까진 로드리게스가 누군지도 몰랐습니다.
이 아저씨 노래 좋아요.
미국 디트로이트 출신 로드리게스는 2집 앨범까지 냈지만 흥행하지 못했답니다.
그런데 바다 건너편 남아프리카 공화국에선 엄청나게 인기가 좋았다네요.
20세기 말까지 인종차별이 심했던 꽉 막힌 남아프리카 공화국.
솔직한 로드리게스의 가사가 남아공 국민들 심금을 울렸나 봅니다.

난 궁금해 네가 얼마나 오랜 시간을 살았는지.
난 궁금해 또 얼마나 많은 계획을 망쳤는지.
난 궁금해 넌 얼마나 많은 섹스를 해 봤는지.
난 궁금해 다음 차례는 누군지.
난 궁금해 궁금해 완전 궁금해.

이런 가사였죠.
로드리게스 노래는 남아공 검열에 걸려서 앨범 속 거의 모든 곡이 방송 불가 판정을 받았었다고 해요.

아무튼, 남아공에서 인기 좋은 가수.
로드리게스 아저씨는 막노동하며 생계를 이어갑니다.
“남아공에서 인기 있다는 걸 미리 알았다면 삶이 달라졌을 텐데 아쉽지 않으세요?”
“음. 글쎄요. 어쩜 달라졌을 수도 있겠네요.”
로드리게스라는 아저씨 멋집니다.
지난 일에 아쉬움 없는 그 말투엔 초연함이 어나더군요.

American Zero, South African Hero
미국에선 꽝, 남아공에선 영웅.

이 문구를 보고 이런 생각이 들었습니다.
이 세상엔 엉뚱한 자리에서 꽝이나 마이너스 삶을 사는 사람이 얼마나 많을까요?
에너지를 쏟을 곳을 찾지 못해 헛된 곳에 힘쓰는 사람들 말이에요.
누구든 가슴 뛰는 곳에 열정을 쏟을 기회가 많아지면 좋겠습니다.

무언가를 거머쥘 능력을 갖춘 사람은 대단한 사람입니다.
세상에 몇 안 되는 사람만이 자기 분야에서 위업을 이루지요.
그리고 손에 무엇이 쥐어지든 연연하지 않는 사람은 위대한 사람입니다.

로드리게스 아저씨는 위대한 예술가 같아요.


슈가맨(Sugar man)

난 궁금해(I wonder)



by


Tags : , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

국립중앙박물관. 이슬람의 보물 - 알 사바 왕실 컬렉션.

인도 왕궁 정원-'이슬람의 보물 - 알 사바 왕실 컬렉션전'

무슨 전시가 있는지도 모르고, 계획 없이 국립 중앙박물관에 갔습니다.
주말이고 날씨도 화창한 게 기분이 좋더라고요.
‘요즘엔 무슨 전시를 하나~?’
매표소에 가니 ‘이슬람의 보물 - 알 사바 왕실 컬렉션’이 기획전이 열리고 있네요.
그릇, 의복, 카펫, 장신구, 관, 건축물, 책 등 다양한 수집품들이 전시되어 있어요.

메카 방향과 거리를 알려주는 지도.-'이슬람의 보물 - 알 사바 왕실 컬렉션전'
메카까지 방향과 거리를 정확하게 알려준다는 지도.

이런 신기한 물건이 가득해요.

그 중 가장 눈길을 잡아끄는 건 보석으로 화려하게 장식된 각종 장신구였습니다.
반지, 귀고리, 팔찌 등등 많았는데요.
손잡이가 화려한 단검이 멋지더군요.
사진은 찍지 못했지만, 앞면과 뒷면을 다른 방식으로 장식한 게 인상적이었어요.

궁수용 반지 -'이슬람의 보물 - 알 사바 왕실 컬렉션전'

궁수용 반지는 한국에서 활 쏠 때 쓰는 깍지랑 비슷하게 생겼어요.
다만 보석으로 장식되어 화려했습니다.

카타르-'이슬람의 보물 - 알 사바 왕실 컬렉션전'

아! 그리고 게임에서나 보던 카타르라는 무기도 실제로 봤네요.
태어나서 지금까지 박물관 다니면서 카타르는 처음 봤습니다.
이렇게 전시품이 다양하니 와볼 만하다 싶어요.

또 이 전시회에서 마음에 든 건 아랍어 글씨체에 대한 설명이었어요.
사실 아랍어는 봐도 이게 글씬지 그림인지도 분간이 잘 안 가는 판에,
글씨체까지 알아차리는 건 쉽지 않지요.
근데 설명을 잘해놨더라고요.
꼭 한국어 돋움체, 바탕체, 필기체 같아요.
아무튼, 즐거운 관람이었습니다.

이슬람의 보물 -알 사바 왕실 컬렉션은,
이촌역 국립중앙박물관에서 2013.10.20.까지 전시합니다.

아라베스크-'이슬람의 보물 - 알 사바 왕실 컬렉션전'

이슬람의 보물 - 알 사바 왕실 컬렉션 전시에서 재미있게 본 것.


아랍 글씨체 세 가지 기본 유형

  • 무디와르체 : 원형
  • 무살라스체 : 삼각형
  • 티임체 : 원형과 삼각형의 복합형태

자주 쓰이는 글씨체

  • 쿠파체 : 직선적이고 모난 형태.
  • 나스흐체 : 전반적으로 둥글고 우아한 필기체.
  • 솔루스체 : 초기 쿠파체를 보완한 곡선과 경사진 선 모양의 서체로 1/3을 뜻하며 모스크 장식 등 건축에 널리 사용된다. 세로획이 가로획보다 세 배가 긴 것이 특징.

그 밖에 재미있게 본 것

  • 모스크 기도실 바닥을 덮는 카펫을 사프(saff)라고 한다.
  • 인도 여름 카펫은 면에 비단으로 수놓았다.
  • 타구는 가래나 침을 뱉는 용도로 쓰는 그릇이다.
  • 아라베스크는 양식화된 식물 모티브와 줄기 등을 뜻하는 르네상스 시대 이탈리아어 아라베스코(a rabesco)에서 유래하였다. (아랍에서 유래 한 것이 아님.)

이슬람의 보물 - 알 사바 왕실 컬렉션 웹사이트



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

Canjs와 Flask를 이용한 웹개발 예제

클라이언트 사이드 자바스크립트 프레임워크인 Canjs와
파이썬 마이크로 프레임워크인 Flask를 이용한 웹 어플리케이션 예제입니다.
이 Canjs + Flask 예제가 프레임워크 이해에 도움이 되길 바랍니다.


Canjs + Flask 예제 소스


예제에 사용된 라이브러리

  • Canjs, 클라이언트 사이드 자바스크립트 프레임워크.
  • RequireJS, 자바스크립트 파일•모듈 로더.
  • Initializr, HTML5 템플릿.
  • Bootstrap, 프론트엔드 프레임워크.
  • JSDoc, 자바스크립트 문서화 도구.
  • BusterJS, 자바스크립트 테스팅 도구.
  • mustache, 템플릿 엔진.
  • i18next, 자바스크립트 다국어 도구.
  • Flask, 가벼운 파이썬 프레임워크.
  • Flask-SQLAlchemy, SQLAlchemy의 플라스크 플러그인.
  • Jade(pyjade), 파이썬용 Jade 템플릿 엔진 플러그인.
  • Flask-Babel, 플라스크용 다국어 플러그인.

예제의 이해를 돕는 글



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

잘 짜여진 자바스크립트 MVC 프레임워크. Canjs

Backbone, AngularJS, Spine….
그동안 나왔던 자바스크립트 프레임워크를 조금씩 건드려는 보았지만,
항상 아쉬움이 남았습니다.
이번에 Canjs를 써보니, 정말 잘 만들어진 프레임워크라는 생각이 들어요.
자바스크립트MVC 프레임워크를 써 볼까 생각 중이시라면, Canjs 한번 고려해 보세요.

can.Control

컨트롤러에서 이벤트 처리

"li .destroy {Event.destroy}": function( el, event) {
var todo = el.closet('li').data('todo);
todo.destroy();
event.stopPropagation();}
});
Events = {destroy : "click"};

css Selector, html.getElementBy, $(selector)가 Control의 셀렉터로 사용된다.

When the element your Control is bound to is removed from the DOM,
the Control destroys itself, cleaning up any bound event handlers.

can.Control 이 아는 이벤트.
* change
* click
* contextmenu
* dblclick
* focusin
* focusout
* keydown
* keyup
* keypress
* mousedown
* mouseenter
* mouseleave
* mousemove
* mouseout
* mouseover
* mouseup
* reset
* resize
* scroll
* select
* submit

링크 처리 방법(How can I make a link in Canjs?)

레이어(layer)
<a id="id" href="javascript://">href</a>

페이지(page)
<a id="id" href="#!id">href</a>

무스타치에서 콜백 받기(Mustache Element Callback)

{{data 'model'}}

경로 설정(RequireJS Paths)

requireJS can require is /can
requireJS에서 canJS를 쓸 땐 can.js를 패스로 잡고 사용해야 한다.
registerHelper이용을 위해서는 can/view/mustache가 필요하다.

404루트 잡기(How to define a catch all route to handle 404 in can js?)

http://stackoverflow.com/questions/13824665/how-to-define-a-catch-all-route-to-handle-404-in-can-js

can.route.bind('change', function(ev, newVal) {
if (newVal === 'route') {
var valid = false;
$.each(can.route.routes, function(k,v) {
if (new RegExp(v.test).test(window.location.hash)){
valid = true;
return; //exit loop
}
})
if (!valid) {
//handle the false route here
}
}
});

다국어 지원(Localization)

Localization is a good example of a custom helper you might implement in your application. The below example takes a given key and returns the localized value using jQuery Globalize.

1. Mustache.registerHelper('l10n', function(str, options){
2. return Globalize != undefined
3. ? Globalize.localize(str)
4. : str;
5. });

can.route에서 i18next 데이터를 받아오지 못할 때

can.when을 이용하여 초기화가 된 후 can라우팅 처리를 해 준다.


var lang =utils.getParam('lang');
var i18noption = {debug: true};
lang != undefined
? i18n
option.lng = lang
: i18n_option.lng = "en";
can.when(i18n.init(i18n_option)).then(function (){});

모델 관계(model associations)

https://forum.javascriptmvc.com/topic/questions-about-model-associations

<div class="header">
<h1>Association</h1>
</div>
<!-- YOUR CODE HERE -->
<div id="contacts"></div>

can.fixture("/contacts.json", function(){
return [{
'id': 1,
'name' : 'Justin Meyer',
'birthday': '1982-10-20',
tasks : [{
id: 1,
title: "write up model layer",
due: "2010-10-5"
}]},{
'id': 2,
'name' : 'Brian Moschel',
'birthday': '1983-11-10',
tasks : [{
id: 2,
title: "write up funcunit",
due: "2009-5-1"
},{
id: 3,
title: "test funcunit",
due: "2010-3-15"}]
},{
'id': 3,
'name' : 'Bobby Joe',
'birthday': '1980-2-10'
}];
})

can.Model.convert.date = function(raw){
if(typeof raw == 'string'){
var matches = raw.match(/(\d+)-(\d+)-(\d+)/);
return new Date( +matches[1],
(+matches[2])-1,
+matches[3] );
}else if(raw instanceof Date){
return raw;
}
};

// A task model that has a date
can.Model("Task",{
attributes : {
due : 'date',
}
},{
weeksPastDue : function(){
return Math.round( (new Date() - this.due) /
(1000*60*60*24*7 ) );
}
});

// A contact model that has many tasks
can.Model("Contact",{
attributes : {
birthday : 'date',
tasks: "Task.models"
},
findAll : "/contacts.json"
},{
ageThisYear : function(){
return new Date().getFullYear() -
this.birthday.getFullYear()
},
getBirthday : function(){
return ""+this.birthday.getFullYear()+
"-"+(this.birthday.getMonth()+1)+
"-"+this.birthday.getDate();
}
});

// Get all contacts and put them on the page
Contact.findAll({},function(contacts){
var contactsEl = can.$('#contacts');

can.each(contacts, function(contact){
var li = can.$('<li>')
.html(contact.name + " "+ contact.ageThisYear())
.appendTo(contactsEl);

var ul = can.$("<ul>");
var tasks = contact.attr('tasks')

if(tasks){
tasks.each(function(){
this.attr('contact', contact);
ul.append('<li>'+this.title+" "
+this.weeksPastDue()+' contact: '+ this.attr('contact.name') +'</li>')
});
}

ul.appendTo(li)
});
});

 

Canjs 웹사이트



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

Javascript 모듈 관리엔 RequireJS

자바스크립트 모듈이 많아 관리가 어렵다면, RequireJS를 사용 해 보세요.

설정(Configuration)


require.config({
"baseUrl": "/static/js/vendor",
"paths": {
"app": "../app",
"bootstrap": [
'//netdna.bootstrapcdn.com/twitter-bootstrap/2.2.1/js/bootstrap.min',
"bootstrap"
],
"jquery": [
"//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min",
"jquery-1.9.1.min"
],
"can": "can",
shim: {
"bootstrap": {
deps: ["jquery"],
exports: "$.fn.popover"
},
enforceDefine: true
}
}
});

모듈 정의(define function)


define(["jquery"],function($){
return {
getParam: function(paramname){
var value = new RegExp('[\?&]' + param
name + '=([^&#]*)').exec(window.location.href);
return value[1];
},
test: function(text){
console.log("test : "+text);
}
};
});

두 모듈을 한 파일에 넣는 방법(requirejs, two classes in one file)

http://stackoverflow.com/questions/9806940/requirejs-two-classes-in-one-file

define('test', ['jquery'], function() {
var exports = {};
exports.test1 = {
method1 : function () {
console.log("test1 - method 1");
},
method2 : function () {
console.log("test1 - method 2");
}
};
exports.test2 = {
method1 : function () {
console.log("test2 - method 1");
},
method2 : function () {
console.log("test2 - method 2");
}
};

return exports;
});

그리고 아래처럼 사용하면 된다.
require(['test'], function (test) {
var test1 = test.test1;
});

두 모듈을 한 파일에 넣는 다른 방법
http://blog.credera.com/topic/technology-solutions/java/modular-javascript-with-requirejs


define(['json!data/customers'], function(customers){
var getRow = function(id) {
return customers[id];
};

var getAll = function() {
return customers;
};

var update = function(data) {
// do something cool with the data
};
return {
get: getRow,
list: getAll,
update: update
};
});


오류 해결

  • Jquery CDN경로가 올바르지 못할 경우 Bootstrap로딩에 오류가 난다.
  • 같은 모듈(예: bootstrap)이 중복 로드될 경우 충돌이 일어난다.

RequireJS 홈페이지



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

유용한 javascript 예제와 팁

URL 파라메터 받아오기(get PARAM)

http://www.codetreat.com/get-url-parameters-values-with-javascript

$.params = function(paramname){
var value = new RegExp('[\?&]' + param
name + '=([^&#]*)').exec(window.location.href);
return value[1];
}

Jquery 셀렉터 성능(JQUERY SELECTOR Performance)

http://jsperf.com/selectors-perf/6
cssSelector는 id 나 element와 함께 쓰지 않고 단독으로 사용한다.


var obj = document.getElementById("childDiv");
xxx = obj.getElementsByClassName("txtClass");

 

이벤트 처리

preventDefault() : 이벤트의 기본 행동을 막는다.
If this method is called, the default action of the event will not be triggered.
stopPropagation() : 상위 핸들러로 이벤트를 넘기지 않도록 막는다.
Prevents the event from bubbling up the DOM tree,
preventing any parent handlers from being notified of the event.

prepend() - 앞쪽에 내용을 붙인다.(to attach content as a prefix.)
append() - 뒷쪽에 내용을 붙인다. (to attach content as a suffix.)

배열 요소에서 데이터를 받고 싶을 땐 $()로 한번 더 감싼다.
$($(array_selector)[0]).data(something);


두번 submit되는 문제(prevent submit twice)
onclick이벤트 보다는 onsubmit 이벤트를 사용한다.
http://stackoverflow.com/questions/2830542/prevent-double-submission-of-forms-in-jquery

this.element.find('.save').attr('disabled','disabled');

// jQuery plugin to prevent double submission of forms
jQuery.fn.preventDoubleSubmission = function() {
$(this).bind('submit',function(e){
var $form = $(this);
if ($form.data('submitted') === true) {
// Previously submitted - don't submit again
e.preventDefault();
} else {
// Mark it so that the next submit can be ignored
$form.data('submitted', true);
}
// Keep chainability
return this;
};


JSON

Object to String
JSON.stringify(obj);
Parse JSON response
JSON.parse(obj);

JSON.parse()사용시 오류 : Uncaught SyntaxError: Unexpected token o
http://stackoverflow.com/questions/8081701/i-keep-getting-uncaught-syntaxerror-unexpected-token-o
데이터형이 올바르지 않아서 나는 오류이다.
Looks like jQuery takes a guess about the datatype.
It does the JSON parsing even though you're not calling getJSON()--
then when you try to call JSON.parse() on an object, you're getting the error.


loglevel

https://github.com/pimterry/loglevel
원하는 레벨의 로그를 콘솔 메시지로 보낸다.
켜고 끄는 것이 편리하다.
log.enableAll() and log.disableAll() methods.
* log.trace(msg)
* log.debug(msg)
* log.info(msg)
* log.warn(msg)
* log.error(msg)


JavaScript 디버깅

chrome dev tool -> Settings -> General -> Disable cache
Timeline을 이용하면 어떤 코드가 어플리케이션에 부하를 주는지 찾아준다.
메모리 누수가 발생한다면 찾아 개선한다.
Profiles도구에서 Heap Snapshot을 두 개 만들어 comparison view로 비교하면 성능 저하 원인을 찾기 편하다.



by


Tags : , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

자바스크립트용 개발 문서 작성기. JSDOC

주석 달기


/** define namespace
* @namespace category
*/

/** use namespace with hash
* @name category#name
* @constructor
*/

/** use member of for constructor
*@memberof category#name
*/


설정(configuration)

remove all comments.
// You must remove the comments before adding these options to your .json file

{
"tags":{
"allowUnknownTags":true
},
"source":{
"include":[],
"exclude":[],
"includePattern":".+\.js(doc)?$",
"excludePattern":"(^|\/|\\)_"
},
"plugins":[],
"templates":{
"cleverLinks":false,
"monospaceLinks":false
},
"opts":{
"template":"default", // same as -t default
"encoding":"utf8", // same as -e utf8
"destination":"./out/", // same as -d ./out/
"recurse":true, // same as -r
"tutorials":"path/to/tutorials",// same as -u path/to/tutorials, default "" (no tutorials)
"query":"value", // same as -q value, default "" (no query)
"private":true, // same as -p
"lenient":true, // same as -l
// these can also be included, though you probably wouldn't bother
// putting these in conf.json rather than the command line as they cause
// JSDoc not to produce documentation.
"version":true, // same as --version or -v
"explain":true, // same as -X
"test":true, // same as -T
"help":true, // same as --help or -h
"verbose":true, // same as --verbose, only relevant to tests.
"match":"value", // same as --match value, only relevant to tests.
"nocolor":true // same as --nocolor, only relevant to tests
}
}


실행
jsdoc -c conf.json

JSDOC github



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

음악 듣는 재미를 찾아준 이어폰. 로지텍 UE900.

작년에 UE Triple.fi 10 pro를 중고로 방출하고, 소니의 이름 모를 이어폰을 사용했습니다.
꽤 만족스러운 이어폰이어서 트리플파이 생각이 별로 안났지요.
헌데 어느날 그 이어폰을 잃어버렸어요.

저가형 번들 이어폰을 써 보았습니다.
G어폰으로 알려진 옵티머스G 용 LG 쿼드비트(QuadBeat)도 써 보고,
대륙의 실수라 불리는 사운드매직 PL30 Plus Pro도 사용해 보았어요.
그런데 영 아쉽습니다.
귀에 이어폰 꼽는 게 전혀 즐겁지 않았어요.
음악은 소음처럼 들리고, 귀도 편하지 않았거든요.
그래서 방출했던 트리플파이를 다시 들여와야겠다고 마음먹었습니다.
그런데 단종되었다네요.
그리고 후속인 UE900이 로지텍에서 나왔습니다.
Ultimate Ears가 로지텍에 합병 되었거든요.
UE는 Ultimate Ears의 약자에요.
트리플파이는 BA 유닛이 3개였는데,
이번에 나온 UE900이란 녀석은 BA 유닛이 4개래요.
거기에다가 착용감도 트파보다 좋다네요.
'아, 이거다!' 싶었지요.
보통 하루 6시간 정도 이어폰을 사용하니,
기왕 쓰는 거 편하고 마음에 드는 녀석을 쓰는 게 좋겠단 들었어요.

comment-'title'

2주일간 숙고해서 산 UE900이 왔습니다.

UE900은 4개의 BA(Balanced Armature) 유닛을 탑재했어요.

우선 BA에 대해 알아보겠습니다.

다이나믹 방식 :
진동판에 코일을 부착하고 이를 자석과 가까이 배치한 코일에 음성신호(교류전기)를 끌여들 코일에 유도된 자력이 자석과 밀고 당기는 힘으로 굴리는 방식
BA 방식 :
BA 무빙코일과의 차이점은 진동판이 코일에 부착되어 움직이는 것이 아니라,
자석과 코일에 인접한 자력으로 말미암 상호반응으로 소리를 낸다는 것입니다.
(자료 출처 : http://skullchristal.tistory.com/137)

다이나믹 방식이 보편적으로 쓰인대요.

UE900의 BA유닛은 아래 역할을 담당합니다.
2개의 BA 유닛 : 저역을 담당
2개의 BA 유닛 : 중역과 고역을 각각 담당


로지텍 UE900 사용기

우선 착용감은 트리플파이보다 좋습니다.
프랑켄슈타인처럼 귀 밖으로 나사가 삐져나오지 않아요.
그러나 UE900음질은 기대에 좀 못미칩니다.
트리플파이만큼 감동이 없어요.
트파엔 뭔가 강렬함이 있었는데 말이죠.
UE900은 비록 트파처럼 야생마 같은 맛은 없지만,
섬세하고 편안합니다.
어찌 되었건 음악 듣는 즐거움을 다시 찾아준 녀석이니까요.
UE900.
이 녀석 정 붙이고 줄 열 번 갈아야 할 때까지 쓰렵니다.



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

파이썬 Flask 플러그인 안내와 팁.

데이터베이스
Flask-SQLAlchemy : OR매핑을 지원하는 플라스크용 파이썬 SQL toolkit
SQLAlchemy에서 상속(Inheritance) : http://docs.sqlalchemy.org/en/rel_0_7/orm/inheritance.html

SQLAlchemy 컬럼에 데이터가 생성될때나 업데이트 될때 현재 시각을 자동으로 넣는 방법.
updated_at = db.Column(db.DateTime, default=db.func.now(), onupdate=db.func.now())

로그인·보안
Flask-Social : 소셜 네트워크와의 연결을 간편하게 해 줌.
Flask Security(Auth) : 로그인과 권한관리.

관리자 페이지
Flask-Admin : 관리자 페이지를 손쉽게 만들도록 도와줌.

다국어 지원
Flask-Babel : 파이썬용 다국어 지원 Babel의 Flask 플러그인

캐쉬
flask-cache : 캐쉬 설정을 도와줌.

에셋 관리
flask-assets : 각종 static 에셋 관리를 편하게 도와줌.
사용하고자 하는 기능에 따라 추가 모듈이 필요하다. (css 압축, scss사용)
pip install cssmin
pip install pyscss
Flask-Assets extension에서 pyScss컴파일러 사용 설정법

from flask import Flask, render_template
from flask.ext.assets import Environment, Bundle

app = Flask(__name__)

assets = Environment(app)
assets.url = app.static_url_path
scss = Bundle('foo.scss', 'bar.scss', filters='pyscss', output='all.css')
assets.register('scss_all', scss)
And in the template include this:

{% assets "scss_all" %}
{% endassets %}

SCSS file은 debug모드에서도 컴파일 된다.

캐쉬
Flask-Cache : 플라스크에서 캐쉬 사용 하기 쉽게 도와줌.
# Flask-Cache Cache Type
CACHE_TYPE = 'simple' # 개발 시
CACHE_TYPE = 'redis' # 배포 시. redis 서버 구동 필요.
from flask.ext.cache import Cache

app = Flask(__name__)
cache = Cache()
cache.init_app(app, config={'CACHE_TYPE': CACHE_TYPE})

파일 업로드
Flask-Uploads : 파일 업로드 관련 처리를 도와줌.
from flask.ext.uploads import UploadSet
images = UploadSet()
images.__init__('upload', IMAGES)
filename = images.save(files, folder='/images', name='test.')
image_path = images.path(filename)
url = images.url(thumbnail)

텍스트 검색
Flask-WhooshAlchemy : 텍스트 기반 검색을 쉽게 도와줌

오류 추적
flask-exceptional : 오류 추적 서비스인 exceptional를 flask에서 이용 가능하게 도와줌.

전자상거래(e-commerce) [flask용 extension 아님]
stripe : 결제 모듈을 간편하게 시스템에 붙이도록 도와주는 서비스.
satchmoproject : 오픈소스 전자 상점 프레임워크 (satchmo Wiki)
satchless : 프레임워크에 종속적이지 않은 e-commerce용 클래스와 패턴 모음
flamaster : flask용 e-commerce eventing 시스템

Flask에서 JSON 다루기(JSON Handling in Flask)
http://flask.pocoo.org/docs/api/#module-flask.json

import requests
r = requests.get(QUERY_URL)
return r.json
//normal return
return jsonify(username=g.user.username,
email=g.user.email,id=g.user.id)

jsonify a SQLAlchemy result set in Flask
http://stackoverflow.com/questions/7102754/jsonify-a-sqlalchemy-result-set-in-flask
jsonify의 문제는 object가 자동으로 json화 되지 않는다는 것이다.
serialize를 위해 다음을 모델에 추가 해 준다.


def dump_datetime(value):
"""Deserialize datetime object into string form for JSON processing."""
if value is None:
return None
return [value.strftime("%Y-%m-%d"), value.strftime("%H:%M:%S")]

class Foo(db.Model):
//... SQLAlchemy defs here..
def __init__(self, ...):
//self.foo = ...
pass
@property
def serialize(self):
"""Return object data in easily serializeable format"""
return {
'id' : self.id,
'modified_at': dump_datetime(self.modified_at),
# This is an example how to deal with Many2Many relations
'many2many' : self.serialize_many2many
}
@property
def serialize_many2many(self):
"""
Return object's relations in easily serializeable format.
NB! Calls many2many's serialize property.
"""
return [ item.serialize for item in self.many2many]

뷰에서는 아래처럼 사용한다.

return jsonify(json_list=[i.serialize for i in qryresult.all()])

gunicorn서버 사용 설정.

from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)

if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000))
app.run()

Blueprint
routing관리에 이용한다.
application/feedback 폴더에 모듈을 넣을 경우.

from flask import Blueprint
mod = Blueprint('root', __name__, url_prefix='') // prefix를 공란으로 두면 root를 의미한다.
mod = Blueprint('feedback', __name__, url_prefix='/feedbacks') // prefix를 채우면 route('/')가 해당 prefix와 같다.
@mod.route('/')

새로운 디렉토리를 만들고 __init__.py파일을 추가해야 import시 인식한다.

모듈을 사용하려면 어플리케이션에서 등록해 준다.

from application.feedback.views import mod as feedbacksModule
app.register_blueprint(feedbacksModule)

파일 여러개 올리기(Uploading multiple files with Flask)
http://stackoverflow.com/questions/11817182/uploading-multiple-files-with-flask


@app.route("/upload", methods=["POST"])
def upload():
uploadedfiles = flask.request.files.getlist("file[]")
print uploadedfiles
return ""

동적으로 생성된 이미지 파일의 url 받기(How to get url for dynamically generated image file?)
http://stackoverflow.com/questions/12034949/flask-how-to-get-url-for-dynamically-generated-image-file

@app.route("/imgs/")
def images(path):
generateimg(path)
fullpath = "./imgs/" + path
resp = flask.makeresponse(open(fullpath).read())
resp.content_type = "image/jpeg"
return resp

mydomain.com/static/test.jpg

from flask import Flask, redirect, url_for

app = Flask(__name__)
@app.route('/')
def index():
generate_img("test.jpg"); #save inside static folder
return '<img src=' + url_for('static',filename='test.jpg') + '>'

Jade
두개의 속성을 지정할 땐 콤마(,)를 잊지 않는다.

script(data-main='js/app', src='js/vendor/require.js')



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

최고의 빵집. 신포동 프렌치빌.

입구-'신포동 빵 맛집. 프렌치빌.'


신포동에 맛있는 집 많습니다.
하지만 딱 한 집을 뽑아야 한다면 바로 이 프렌치빌 빵집입니다.
몇 년 전 우연히 들른 뒤로 단골이 되었어요.

프렌치빌 빵 정말 맛있습니다.
식빵도 맛있고 케이크도 맛있고 다 맛있어요.
우선 초콜릿이 들어간 종류는 확실히 맛이 좋아요.
초콜릿 케이크나 초코 빵. 뭐 이런 종류죠.
왜냐면 프렌치빌은 제과점이면서 수제 초콜릿 전문점이기도 하기 때문이에요.
치즈가 들어간 케이크류도 맛이 좋습니다.
프로마쥬, 티라미스, 치즈케이크 다 맛있어요.


프로마쥬-'신포동 빵 맛집. 프렌치빌.'


프랑스 파리에 가면 안젤리나라는 유명한 제과점이 있습니다.
사람들이 한 시간 줄을 서서 몽블랑과 핫초코를 먹는 유명한 빵집이지요.
거기서 몽블랑 먹으면서 프렌치빌 생각이 나더라고요.
‘아. 역시 우리 동네 프렌치빌보다 맛있는 빵집은 없는 건가?’

혹시나 프렌치빌 앞을 그냥 지나칠 일이 생기면 아쉽습니다. :D

동인천에 왔는데, 달달한게 기신다면? 프렌치빌 적극 추천해요.



신포동 맛집. 프렌치빌 위치.

크게 보기



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

막심 고리키의 희곡. 밑바닥에서.

러시아의 문호 막심 고리키의 희곡입니다.
항상 희곡과 각본이 헛갈렸는데, 이번에 희곡 ‘밑바닥에서’를 읽으며 각본과 희곡에 대한 정의를 찾아보았어요.

연기자가 주체가 되는 미모스(mimos)라는 연극에서 연기자를 위해 작가가 만드는 콤퍼지션이 바로 각본이다. 드라마는 어떤 문학작품을 예상하는 연극으로 그 문학작품이 곧 희곡이다. 드라마 역시 배우가 창조하는 예술이기는 하지만, 그들은 독자적으로 이것을 창조할 수 없기 때문에 극작가와 협동하지 않으면 안 된다. 그래서 희곡을 흔히 드라마라고 부르기도 한다.
- 출처 : [네이버 지식백과] 희곡 [drama, 戱曲] (두산백과)

즉 연기자가 주체가 되는가, 작품이 주체가 되는가의 차이군요.

희곡은 소설과 또 다른 재미가 있습니다.
공연장이라는 한정된 공간에서 정해진 시간 동안 이야기가 전개되기 때문에,
소설처럼 마음껏 양념을 치기가 어렵지요.
개성이 뚜렷한 등장인물들 위주로 풀어나가는 희곡, 밑바닥에서.
한 편의 연극을 관람한 기분입니다.
막심 고리키의 내공이 느껴지네요.
밑바닥에서 연극 상연 소식이 들리면 한번 보러 가야겠습니다.

헝가리 현대 미술관-'밑바닥에서(The Lower Depths)'

밑바닥에서 - 책갈피

노동이 만족스러우면, 생활은 나아지게 마련이지! 대신 노동이 의무가 되면, 삶은 노예가 되는거야!
- 사틴

일 많이 하기로 인간의 가치가 정해진다면… 말이나 소보다 더 훌륭한 사람은 아무도 없게?… 소나 말은 죽도록 하지만 말이 없잖아!
- 페펠

스스로가 자신의 주인인 자… 누구에게도 의지하지 않고, 남을 수단으로 삼을 생각이 전혀 없는 자에게는 거짓말이 무용지물이야! 거짓말이 노예나 주인의 종교라면… 진실은 자유로운 인간의 신이라고 할 수 있지!
- 사틴

누구나 자신을 위해 살다 보면 보다 나은 삶을 살게 될 거라고 생각하는 거야! 백 년이 지나고, 또 백 년이 더 지나면 아마도 사람들은 지금보다 훨씬 더 나은 삶을 살게 되는 거지, 결국엔!
- 루카



by


Tags : , , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

블로그 글 찾아보기를 편리하게! 월풍서가(月風書架)

블로그를 시작한 지 꽤 오랜 시간이 흘렀습니다.
가끔 예전에 쓴 글을 보고 싶은데, 글 제목이 생각 안 날 때가 있더라고요.
그래서 페이지를 하나 만들었습니다.
월풍서가(月風書架)
분류별로 글을 정리해 월풍도원 블로그 글을 찾아보기 쉽게 하기 위함입니다.
우선 책 감상평만 정리하였지만,
나머지 부분도 체계적으로 정리해 나갈 생각입니다.

오래전 글을 다시 읽는 재미가 쏠쏠합니다.
‘그 땐 저런 생각을 하고 살았구나.’
‘저건 불과 반 년 전인데도 낯설구나.’
이렇게 저를 돌아보며 블로그를 계속 써온 것에 뿌듯함을 느꼈어요.
월풍서가(月風書架)'
저에겐 지난날을 곱씹는 반추의 공간으로,
블로그를 찾으시는 분들께는 편리한 정보 검색 공간이 되게 하겠습니다.

저의 블로그를 찾아주셔서 고맙습니다.



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

꿋꿋한 동네 맛집. 국제 경양식.

오래전 인천 지역신문에 맛집으로 소개되었던 집입니다.
고등학생 무렵으로 기억되는군요.
그땐 딱히 인상적인 맛을 느끼지 못했습니다.
돈스를 먹었던 기억인데요.
동인천 부근에 워낙 값싸고 맛 괜찮은 분식집이 많았던 터라,
국제 경양식의 음식 맛이 좋다는 생각이 들지 않았었지요.
그리고 세월이 흘러, 십 년도 더 지나서 다시 이 집을 찾았습니다.
일요일은 문을 닫는 것 같아요.
가보려고 처음 마음먹었던 일요일엔 문이 굳게 닫혔었고,
그다음에 또 생각이 나서 적어놓은 번호로 전화를 걸었을 때도 일요일엔 응답이 없었거든요.
그래서 토요일에 통화해서 문 열었다는 걸 확인하고 갔습니다.

간판-'국제경양식 (International Restorant)'

낡은 건물에 허름한 간판.
‘국제 경양식.’

메뉴-'국제경양식 (International Restorant)'

음식 가격은 분식점과 일반 양식당의 중간 가격입니다.
주문할 때 이런 질문을 하시죠.
“밥으로 하시겠습니까? 혹은 빵으로 하시겠습니까?”
경양식집이 아니고서야 이런 질문을 하지 않지요.^^;

빵-'국제경양식 (International Restorant)'

저는 빵이 좋아요.
사과잼과 버터가 함께 나오더라고요.
동네 슈퍼에서도 파는 잼과 버터지만,
빵이 느끼하지 않고 부드러워 함께 먹으면 맛이 좋습니다.
빵을 한 조각 집어 먹으니 주요리가 나오는군요.

함박스테이크-'국제경양식 (International Restorant)'

비프커틀릿-'국제경양식 (International Restorant)'

함박스테이크와 비프커틀릿입니다.
간단한 채소가 곁들여 나오는데요.
당근을 참 잘 삶았습니다.
간이 적절하게 잘 되었네요.
마카로니와 마요네즈의 기본 조합도 맛이 좋네요.
특별하진 않아도 내공이 쌓인 집이란 느낌이 들었습니다.

비프커틀릿은 그냥 그랬어요.
하지만 함박스테이크는 국제 경양식만의 특별함이 있습니다.
얇게 저민 양파를 고기 위에 올리거든요.
씹히는 맛이 좋습니다.
보통 함박스테이크는 햄버거 고기만 쓸쓸히 나오거나,
달걀부침 정도 올라가 있잖아요?
국제 경양식엔 분명 고유의 조리법이 있습니다.

어디 멀리서 국제 경양식 때문에 찾아온다면 기대보다 소박한 맛에 실망할지도 몰라요.
그러나 어찌어찌 지나가다 보니 근처라서 들른다면 만족스러울 겁니다.
뭐 사람마다 맛의 기준은 다르지만, 기본기가 잘 갖추어진 집이거든요.
음식에 어떤 매력도 없다면 40년도 더 경양식집을 운영하기 어려웠겠지요? :D

국제 경양식 위치

크게 보기



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

생소한 맥. OS X에 익숙해지기.

최근에 맥(Mac)을 써볼 기회가 있었습니다.
익숙하지 않은 환경이라 생소했어요.
그렇지만 조금 만지다 보니 금방 익숙해집니다.
다음에 또 맥을 쓰게 되면 참고하려고 사용환경을 정리해봤어요.

유용한 앱

일반
Plain Text : 리치 텍스트를 일반 텍스트로 변환할 때 씁니다.
Textwrangler(http://www.barebones.com/products/textwrangler/) : 가벼운 코드 편집과 텍스트 편집에 씁니다.
Degrees : 메뉴바에 표시되는 날씨 앱입니다.
Chrome : 웹 브라우져 입니다.
Evernote(https://evernote.com) : 메모할 때 좋습니다.
CheatSheet(http://www.cheatsheetapp.com/CheatSheet/) : 맥 단축키를 익히기 좋습니다.
Vox MP3 player(https://www.macupdate.com/app/mac/24852/vox) : MP3플레이어로 메뉴바에 플레이 버튼이 생겨 좋습니다.
Alfred(http://www.alfredapp.com/) : 빠른실행, 검색등 다양한 기능을 담은 유틸리티입니다.
Dropbox(https://www.dropbox.com/) : 파일 저장을 위한 클라우드 서비스입니다.
uTorrent(http://www.utorrent.com/intl/ko/downloads/mac) : 토렌트 클라이언트 입니다.

개발
JSRef : CSS / HTML5 / Javascript 사전입니다.
Pycharm : 파이썬 개발도구입니다.
Iterm(http://www.iterm2.com/#/section/home) : 맥용 터미널 입니다.
Xcode : 맥용 개발 도구 모음입니다.
MariaDB(https://mariadb.org/en/) : 오픈소스 데이터베이스입니다.
Mysql Workbench(http://www.mysql.com/products/workbench/) : Mysql에서 제공하는 데이터베이스 설계 도구입니다.
homebrew(http://mxcl.github.io/homebrew/) : 패키지 설치를 쉽게 도와줍니다.
홈브루 설치법 : ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
홈브루 패키지 정보 업데이트 : Brew update formula
홈브루 업데이트 : brew update
홈브루에서 파이썬 설치(https://github.com/mxcl/homebrew/wiki/Homebrew-and-Python) : brew install python
홈브루에서 마리아db 설치 : brew install mariadb

단축키

fn + ↑ : Page Up
fn + ↓ : Page Down
fn + ← : Home
fn + → : End
fn + delete : windows del키
Option(alt) + enter : 한자
Command + Option + ESC : 강제 종료
Command+Shift+3 : 캡쳐 파일 저장
Command+Ctrl+3 : 클립보드로 저장
Command+Shift+4 : 영역 지정 캡쳐
Command+Ctrl+4 : 어플리케이션 윈도우 캡쳐

Finder
Command+Shift+N : 새 폴더
Command+Shift+G : 폴더로 이동

사전
Command+Ctrl+D : 사전에서 찾기.(커서를 원하는 텍스트에 두고 누른다. 크롬등의 웹 브라우져에서도 지원한다.)
* 추가할 사전이 있을 때 : /Library/Dictionaries 에 압축 해제

사용자 정의 단축키 설정
automator -> service -> utility -> run shell script
명령어 입력후 키보드 서비스 단축키 설정

기타 팁

맥 부팅 소리 끄기
sudo nvram SystemAudioVolume=%80
맥 부팅 소리 켜기
sudo nvram -d SystemAudioVolume

맥에서 패스 잡기
모든 유저에게 적용할 땐 /etc/paths에,
단일 사용자에 정용할 땐 ~User/.bash_profile에 아래를 추가해 준다.
PATH=$PATH:/my/new/path/
(http://blog.just2us.com/2011/05/setting-path-variable-in-mac-permanently/)

맥 초기화
맥 전원을 끈다.
맥 전원을 켠 후 Command+R키를 누른다.
OS X를 재설치 한다.

맥에서 파이참 디렉토리 위치
/Users/dorajistyle/Library/Preferences/PyCharm20



by


Tags : , , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.

마르크스, 니체, 프로이트를 말한다. 철학의 끌림.

글이 재미없습니다.
그럼에도 끝까지 읽은 것은 관심 분야이기 때문이겠지요.
철학에 대한 갈증이 조금만 덜 했어도 몇 장 읽고 접었을 책입니다.
이 책의 목적은 지식의 전달이 아니라 단순히 지식의 배출이 아닐까 생각이 듭니다.
독자를 위한 배려가 전혀 없는 책이라고 느껴졌어요.
문학처럼 유려한 문장까지는 아니더라도, 최소한 무슨 이야기인지는 알아듣게 설명을 해야지요.
몇 번을 읽어야 이해가 될 문장이 수두룩합니다.
예를 들면 아래와 같은 문장입니다.

우연히 말을 타다가 떨어져서 가슴을 다치는 바람에 제대할 때까지 니체는 병으로 휴가를 얻을 수 있었다. (원문)
->
니체는 말을 타다 우연히 떨어져 가슴을 다치는 바람에 제대할 때까지 휴가를 얻었다. (수정 예시)

문장을 조금만 손봐도 무슨 말을 하는지 이해가 쉬울 텐데요.
독자인 저의 기반지식이 부족해서 이해가 안 되는 부분은 어쩔 수 없습니다.
하지만 일반적인 부분까지 일부러 어렵게 꼬아놓을 필요는 없지 않을까요?
더욱 놀라운 건, 이 책이 개정 증보판이라는 겁니다.
만약 다시 한번 개정 증보판을 내실 계획이라면,
이런 매끄럽지 못한 문장들도 개선하면 좋겠습니다.

사실 내용만 놓고 본다면, 괜찮은 책입니다.
마르크스, 니체, 프로이트.
3인 사상가의 일생과 주요 주장, 비판까지 폭넓게 담았지요.
특히 사상가의 사상이 초기부터 후기까지 변화하는 모습을 담은 부분이 좋았습니다.

철학의 끌림.
애증의 책이네요.^^;

헝가리 부다페스트 현대 미술관-'철학의 끌림'

철학의 끌림 - 책갈피

지금까지 철학자들은 다양한 방법으로 세계를 해석하기만 했다. 문제는 세계를 변화시키는 것이다.”
- <포이어바흐 테제>, 마르크스

전통적인 철학의 네 영역

  • 형이상학 - 사물들(있는 것들: 존재자들)의 관계와 사물들의 근원(원천)이나 원리 및 사물들과 세계 원리와의 관계 및 성질들을 탐구하는 영역이다.
  • 인식론 - 인간의 인식(앎) 능력의 성격, 한계, 인식의 주관성과 객관성 및 보편성 등을 탐구한다.
  • 윤리학 - 실천적 행위에 대한 도덕판단의 의미와 가치를 탐구한다.
  • 미학 - 미적 체험과 아울러 미적 기준, 미적 활동, 예술과 예술작품의 미적 가치 등을 탐구한다.

네 가지 영역 이외에도 부차적으로 논리학과 철학사를 기본 탐구영역으로 포함하기도 한다.


프로이트의 리비도의 물리적 및 정신적 구성요소

  • 자극의 내면적이며 유기적인 원천
  • 자극의 일정한 긴장 내지 강도
  • 긴장이나 강도의 해소(완화)로부터 생기는 쾌감
  • 쾌감을 통해서 성립하는 일정한 목표
  • 그러한 목표를 실현할 수 있는 대상


프로이트의 개인의 성적 발달단계 5단계

  • 구강기(신생아~1세) - 엄마의 젖을 제대로 먹지 못하고 차가운 젖병만 빨고 자란 아기는 나중에 성인이 되어 원만한 성격이 형성되지 못한다.
  • 항문기(2세) - 엄한 변훈련을 받은 아이는 어른이 되어 인색하고 강박적인 항문파지성격을 가지고, 방만한 배변습관을 가진 아이는 커서 잔인하고 파괴적이며 무질서한 항문파열 성격을 띤다.
  • 성기기(3~6세) - 3~4세 아이는 남녀의 해부학적 차이에 대해 강한호기심을 보이고 때로는 불안해하고 혼란에 빠지기도 한다. 5~6세에 이르면 남자아이는 오이디푸스 콤플렉스를 그리고 여자아이는 엘렉트라 콤플렉스를 느낀다.
  • 잠복기(6~7세부터 12세) - 입, 항문, 성기에 관한 생각과 충동은 점점 무의식 안에 억압되고 그런 것들을 직접 행동으로 나타내거나 말로 표현하는 것은 허락되지 않는다.
  • 사춘기(12~13세) - 여자는 유방과 둔부가 커지며 초경을 경험한다. 남자는 변성과 음모를 경험하게 된다.

주요 철학자

그리스 철학

  • 소크라테스
  • 플라톤
  • 아리스토텔레스
  • 플로티노스
  • 에피쿠로스

중세 철학

  • 아우구스티누스
  • 토마스 아퀴나스

르네상스 철학

  • 로크
  • 데카르트
  • 스피노자

18,19세기 철학

  • 칸트
  • 헤겔


더 읽을 거리

  • 마르크스(Karl Heinrich Marx, 1818-1883)
    <국민경제학과 철학> <공산당 선언><자본론>
  • 바쿠닌(Mikhail Aleksandrovich Bakunin, 1814-1876)
    <신과 국가><국가와 무정부>
  • 니체(Friedrich Wilhelm Nietzsche 1844-1900)
    <비극의 탄생><이 사람을 보라>
  • 프로이트(Sigmund Freud,1856-1939)
    <꿈의 해석 The Interpretation of dreams><정신분석학 입문 강의>
  • 들뢰즈(Gilles Deleuze, 1925-1995)
    <앙티 오이디푸스<경험주의와 주관주의자>
  • 라캉(Jacques Lacan, 1901-1981)
    <에크리 crits> <자크 라캉 : 삶의 개요, 철학체계의 역사 [E.루디네스코]>



by


Tags : , , , , , ,

  • 재미있게 읽으셨나요?
    방랑자의 이야기.
    월풍도원에선 기부를 받습니다.