- 맞춤 임신을 꿈꾼다! 예비 엄마들의 건강한 몸 만들기
건강한 아이를 갖기 위해서는 태아가 자랄 모태 환경, 즉 자궁이 건강해야 한다. 임신 계획을 세웠다면 건강한 몸 만들기에 돌입해야 한다. 산전 검사는 물론 계획 임신을 위해서는 식생활 관리 등 세심한 노력이 필요하다. 황금 돼지띠에 아이 낳기 위해 미리 체크해볼 일을 취재했다.

임신 계획서를 작성한다 | 임신 계획을 세우고 새 생명을 맞을 준비를 하기 위해서는 먼저 출산 예정일을 정해 임신 계획서를 쓰는 것이 중요하다. 최근 6개월 이내에 감기약 등을 복용한 적은 없는지, 몸 상태는 어떤지 스스로 점검한다.

산전 검사로 몸 상태를 점검한다 | 임신 계획을 세웠다면 산부인과를 방문해 진료와 산전 검사를 받도록 한다. 전문의와 상담 후 생리 기간이나 양을 체크하고 자궁 내 혹이나 울혈은 없는지 살펴본다. 임신 전에 받아야하는 산전 검사는 의사와 상의한 후 필요한 검사를 택일하면 된다.

피임을 중단한다 | 자궁 내 장치를 하고 있다면 임신 계획 한 달 전에는 제거하고 피임약도 미리 중단한다. 자궁이 정상적으로 활동하기 위해서는 한 번의 생리를 거치는 것이 중요하기 때문이다.

한 달 전부터 엽산을 섭취한다 | 하루에 400㎖씩 임신 1개월 전부터 임신 3개월까지 엽산을 복용하도록 한다. 간, 시금치, 콩류, 과일, 달걀노른자, 호박 등 엽산이 많이 들어 있는 식품을 고려한 식단을 구성하도록 한다. 매일 권장량만큼 섭취하지 못하게 되면 일반 종합 비타민을 복용하는 것도 좋은 방법이다.

체중 조절에 신경 쓴다 | 과체중인 경우 임신이 잘 되지 않는다. 비만인 경우 체중조절에 신경 쓰도록 한다. 한두 달 사이에 무리하게 다이어트를 하게 되면 무배란증이 생긴다는 사실을 염두에 둔다.

균형 잡힌 식단을 차린다 | 살찌기 쉬운 지방 함량은 줄이고 고단백 음식 위주로 식단을 구성한다. 우유, 닭고기, 두부 등 필수아미노산 함량이 높은 메뉴를 많이 섭취하도록 신경 쓴다. 균형 잡힌 식단으로 모태 환경을 건강하게 만든다.

- 임신 면허증은 필수! 꼭 받아야할 산전 검사
산전 검사는 임신부의 건강과 태아의 성장을 위해 꼭 해야 한다. 임신 전은 물론 임신 시기별로 전문의와 상의 후 검진을 받는 것이 중요하다. 당뇨, 고혈압, 간염 등 내과적인 질환이나 갑상선 수술 등의 외과적인 질환, 가족 병력 등을 미리 의사와 충분히 상의하는 것이 중요하다. 임신 시기별로 받아야 하는 산전 검사를 알아봤다.

임신 준비기에 필요한 검사
풍진 검사 | 바이러스에 의한 감염으로 감기와 증세가 비슷한 병으로 평소에는 괜찮지만 임신 초기에 발병하면 태아가 선천성 기형이 될 가능성이 높다, 풍진항체 검사를 받고 항체가 없는 경우 백신 접종을 하도록 한다. 접종 후 2개월 동안은 피임을 하는 것이 안전하다.
빈혈 검사 | 임신을 하면 혈액량은 늘어나지만 적혈구 수는 늘어나지 않아 평소보다 혈액의 농도가 묽어지게 된다. 특히 임신을 하면 태아가 엄마의 철분을 다량으로 흡수하기 때문에 빈혈로 고생할 위험이 있다. 임신 준비 기간에 미리 빈혈 검사를 한 후 치료를 받도록 한다.
고혈압 검사 | 최고 혈압이 140mmHG이고 최저 혈압이 90mmHG보다 높으면 고혈압이다. 고혈압인 여성이 임신을 하면 임신중독증 등 태아가 위험할 수 있으므로 의사와 상의 후 임신 계획을 세우는 것이 안전하다.

임신 초기에 필요한 검사
혈액 검사 | 정상 분만을 할 때의 출혈도 빈혈인 임신부의 경우에는 매우 위험하다. 혈액 검사를 통해 빈혈 여부를 판단하고 간염, 매독, 혈액형을 검사할 수 있다. 에이즈나 매독 등 선천성 감염 여부를 알아본 후 그에 따른 처방을 받게 된다.
초음파 검사 | 임신 초기에는 질 초음파를 통해 자궁 외 임신은 아닌지 감별하고 태아의 크기를 계측해 출산 예정일을 산출한다. 임신 20주까지는 1달에 한 번은 꼭 해야 하는 검사로 태아의 심박동 유무와 자궁 및 난소의 이상까지 체크할 수 있다.
융모막 검사 | 고령 임신일 경우 기형이나 염색체 이상을 알아보는 융모막 검사를 해보는 것이 좋다. 임신 초기의 태반인 융모막을 체취해서 염색체 이상을 알아보는 검사로 태아와 동일한 염색체를 구성하고 있는 융모세포를 관찰하는 특수 검사이다.

임신 중기에 필요한 검사
기형아 검사 | 개방성 신경관 결손증, 염색체 이상 등 다른 유전 질환의 위험이 있거나 기형아 검사 및 초음파가 정상이 아닐 때 염색체 이상 등을 확인하기 위해 시행한다. 임신 10주에 한 번, 16~18주에 한 번 반드시 받아야 한다.
산전 정밀 초음파 | 임신 19~25주에 하는 정밀 초음파 검사는 태아의 뇌, 심장, 위장관 등에 대한 발육 상태는 물론 태반의 위치와 양수량, 자궁경부의 길이까지 알 수 있다. 태아의 정상 발달 상태와 세부적인 구조를 살피는 데 효과적이다.
임신성 당뇨 검사 | 임신 24~30주에 소변 검사를 통해 임신성 당뇨, 요도염, 신우신염, 신장염을 진단할 수 있다. 초기 소변에서 당이 지속적으로 검출되는 경우에는 24주 이전에 당뇨 선별 검사를 하도록 한다.

임신 후기에 필요한 검사
혈액형 검사 | 임신 후기가 되면 임신부의 건강 상태에 따라 소변과 빈혈 검사를 반복해서 하기도 한다. 혈액형 검사를 통해 RH인자 검사를 하면 유산, 조산, 사산을 예방하는 데 도움이 된다.
입체 초음파 검사 | 임신 후기 태아의 정확한 발육 상태 및 늦게 발견되기 쉬운 기형 유무를 확인하기 위한 검사다. 삼차원 초음파 검사를 통해 뱃속 태아가 손가락을 빨고 발로 차는 일상적인 모습까지 포착할 수 있다.
태아 심박동 검사 | 임신 30주에서 분만 전에 이루어지는 검사로 임신부의 배에 태아 감시 장치를 연결해 심박동 변화와 자궁 수축 정도를 측정한다. 태아 심박동이 변화가 없거나 다양하지 않은 경우 추가 검사로 이상을 알아보게 된다.

 - 임신 주기에 맞춰 실천하자! 초기, 중기, 후기 특징과 생활법
아이를 뱃속에 품고 있는 임신 40주 동안 엄마의 몸은 많은 변화를 겪는다. 임신 초기에는 입덧으로 인해 아무 것도 먹지 못할 정도로 고통스럽고, 한 달, 한 달 배가 불러올수록 숨을 쉬거나 걷는 것조차 힘들 때가 많다. 임신 초기부터 막달까지 변하는 엄마 몸의 특징과 그에 따른 올바른 생활법.

도움말 | 안현영 (가톨릭대 강남성모병원 산부인과 교수)

[임신초기 1~3개월]
특징은요
겉으로 드러나는 뚜렷한 신체 변화는 없으나 여성호르몬의 급격한 상승으로 입덧, 졸음, 감기 기운 등이 느껴지며 쉽게 피로해진다. 따라서 생리 주기가 불규칙했던 여성은 임신인 줄 모르고 감기약을 복용하기 쉬운 시기이다. 임신 2~3개월이 되면 본격적으로 입덧이 시작되면서 입맛이 변하고, 가슴이 커지며 당기는 듯한 통증이 느껴진다. 소변 횟수가 증가하면서 변비가 생기기 쉬운 시기이지만 아직까지 체중은 크게 늘어나지 않는다.
주의점은요
임신 초기에는 태반, 태아 모두 불안정한 상태로 자칫 잘못하면 유산의 위험이 있으므로 특히 몸가짐에 주의해야 한다. 의사의 처방 없이 약을 먹거나 X선 검사를 받는 것은 절대 피한다. 무엇보다 이 시기에는 충분한 휴식이 가장 중요하다. 힘든 일이나 운동, 여행, 성생활은 삼가고 술이나 담배는 절대 금물이다. 만약 질 출혈을 경험한다면 반드시 병원을 방문해야 하며 섬유질이 많은 음식으로 규칙적인 식사를 해야 한다.

[임신중기 4~6개월]
특징은요
입덧이 거의 가라앉아 식욕이 살아나며 피곤함도 덜 느끼게 된다. 이 시기가 되면 태동을 느낄 수 있으며 본격적으로 태교를 시작할 수 있다. 자궁이 어른 머리만큼 커지고 양수가 늘어나 몸무게가 현저히 늘어나고 배가 많이 나오게 된다. 이 시기에는 복부의 인대가 늘어남에 따라 하복부에 불편함을 느낄 수 있으며 자궁이 팽창해 폐를 압박하면서 호흡 곤란 증세가 나타나기도 한다.
주의점은요
당뇨나 임신중독증 예방을 위해 조미료와 염분이 많이 함유된 외식을 피하며, 칼로리가 높은 패스트푸드와 인스턴트 음식은 먹지 않도록 한다. 철분제를 먹어서 빈혈 증세를 방지하고, 자연분만을 대비해 스트레칭, 이완체조를 꾸준히 하기 시작한다. 과로는 피하고 너무 오래 서 있거나 앉아 있지 않는다. 일하는 중간중간 스트레칭을 하면서 혈액순환이 잘 되도록 1~2시간에 한 번씩 맑은 공기를 쐬며 심호흡을 한다. 산전 진찰을 꾸준히 받아 혈압과 체중을 자주 체크해야 한다.

[임신후기 7~10개월]
특징은요
본격적으로 배가 불러와 몸을 움직이기가 쉽지 않으며, 엉덩이와 골반이 불편하고 요통이 심해져 서 있거나 걷는 것이 힘이 든다. 발목과 발이 많이 붓기 시작하며, 커진 자궁으로 인해 숨이 차는 일이 잦다. 태아가 자람에 따라 자궁이 위를 압박하므로 소화불량 및 속쓰림도 자주 겪게 된다. 10개월이 되면 태아가 골반으로 내려와 방광을 압박해 항상 소변이 마려운 듯한 느낌이 들기도 한다.
주의점은요
똑바로 누울 경우 커진 자궁으로 인해 하지의 혈액 순환이 저하되어 갑작스런 저혈압과 숨이 차는 증상이 나타날 수 있으므로 가급적 옆으로 눕는다. 또한, 자궁이 커지면서 골반내의 혈관을 압박해 정맥류가 생기기 쉽다. 장기간 서 있는 것을 피하고 가끔 발을 높게 해서 휴식을 취하며 워킹맘의 경우 압박 스타킹을 착용하고 일하는 것이 좋다. 변비를 예방하기 위해 과일, 야채를 많이 섭취하고 매일 식전에 물이나 우유를 마신 후 운동을 하는 습관을 들인다.

 - 태교도 달라져야 한다! 돼지띠 아이에게 좋은 맞춤식 태교법
재물운을 타고난다는 정해년 돼지띠 아이들. 수많은 태교법 중에서 복 많은 돼지띠 아이들을 위한 효과적인 태교는 무엇일까? 돼지띠 아이의 기운을 북돋워주고, 재능을 키워주기 위한 돼지띠 아이만을 위한 효과적인 태교법을 알아봤다.

참고 도서|당당한 임신, 똑똑한 태교 (언어세상)

파란색, 녹색을 이용한 컬러테라피 태교
돼지띠 아이들의 성향을 색상으로 보면 흰색이나 검은색에 속한다. 따라서 역동적인 기운을 주는 파란색이나 녹색을 이용한 컬러테라피 태교가 돼지띠 아이에게 효과적이다. 파란색이나 녹색은 동쪽의 새로운 기운을 상징하고 이는 돼지띠 아이들의 어두운 기운을 밝고 부드럽게 만들어준다. 녹색은 내성적인 아이에게 능동적이고 활발한 성향을 갖도록 해주고 정서적인 안정감을 갖도록 하는 효과가 있다. 돼지띠 아이들이 가지고 있는 한겨울 물의 기운을 파란색이나 녹색이 부드럽고 유연하게 만들어주기 때문이다

태교 실천하는 아이디어는요
01 생활 속에서 녹색을 많이 접한다
집안 곳곳에 녹색 식물을 두고 자주 보면서 마음의 평안을 얻어보자. 돼지띠 아이에게 부족한 녹색의 기운을 온몸으로 흡수해본다.
02 태어날 아이 방을 녹색으로 꾸며준다
아이의 방을 녹색으로 인테리어해보자. 메인 톤을 연두로 잡았다면 서브 컬러를 노란색 등으로 잡아 아이의 정서를 안정시키는 인테리어를 꾸며준다.
03 푸른 바다나 산을 자주 본다
보기만 해도 눈이 시원해지고 피로가 풀리는 푸른색 바다나 산, 하늘을 자주 올려다보자. 가까운 곳에서 보기가 힘들다면 그림을 걸어두고 보는 것도 좋은 방법.

리더십을 북돋워주는 영재 태담 태교
대기만성형 리더의 기질을 가지고 태어난 돼지띠 아이에게는 두뇌를 자극시켜주는 영재 태교법이 효과적이다. 두뇌 자극에 좋은 대표적인 태교는 바로 태담. 5개월 무렵부터 태아는 외부 소리에 반응하기 시작하므로 이 때부터 시작하면 된다. 매일 아이에게 다양한 이야기를 들려주는 것은 물론, 수학·영어와 같은 다양한 태담 태교를 시도해보자. 아이에게 영어로 노래를 불러주거나 일상 속에서 재밌는 수학의 규칙을 알려주는 태담 태교는 아이와의 교감을 통해 아이의 두뇌를 자극시키는 첫걸음이 된다.

태교 실천하는 아이디어는요
01 사소한 이야기도 자세하게 들려준다
아이에게 태담을 할 때는 아이가 반응을 하는지 살피면서 이야기를 해준다. 아주 사소한 것이라도 또박또박 구체적으로 이야기를 들려주는 것이 효과적.
02 영어 노래나 동화책을 읽어준다
여기저기 돌아다니는 기질의 돼지띠 아이에게는 뱃속에서부터 영어를 잘할 수 있는 환경을 만들어주자. 매일 영어로 된 노래를 불러주거나 동화책을 읽어줘 두뇌를 자극해주자.
03 생활 속 숫자 놀이를 한다
수학 태교는 생각보다 그렇게 어려운 것이 아니다. 물건의 개수를 세어준다거나 다른 모양의 물건을 찾는 놀이 등을 아이에게 들려주는 것만으로도 수학 태교를 시작할 수 있다.

태교신기 정신을 물려받은 전통 태교
옛 어른들의 지혜로 만들어져 오랜 세월 동안 꾸준히 이어져 내려오는 전통 태교법인 태교신기. 사람은 잉태될 때는 누구나 똑같은 천품을 부여받지만 엄마 뱃속에서 열 달 동안 어떻게 지내느냐에 따라 아이의 인성이 결정된다고 믿는 것이다. 태교신기에 따르면 임신부는 임신 전부터 몸과 마음가짐을 바르게 하고, 사소한 행동, 먹는 음식의 모양 하나하나까지 신경을 써야 한다. 엄마가 보고, 듣고, 먹는 것 하나하나가 뱃속 아이에게 그대로 영향을 미치므로 항상 밝고 좋은 생각을 해서 인성 바른 아이로 낳아야 한다는 것이 태교신기의 핵심.

태교 실천하는 아이디어는요
01 항상 예쁘고 바른 것만 먹는다
음식 하나를 먹을 때도 모양이 바르고 예쁜 것만 먹는다. 예쁘고 색이 고운 음식을 먹음으로서 엄마의 기분이 좋아지면 태아도 똑같이 편안한 상태가 되기 때문.
02 아름다운 것만 보도록 노력한다
아이가 닮았으면 하는 사람의 사진이나 예쁜 사진을 걸어두고 본다. TV나 영화는 따뜻하고 아름다운 내용만을 본다. 임신부가 보고 흥분하거나 놀랄 만한 내용은 피해야 한다.
03 말과 행동을 조심한다
임신부는 말 한 마디, 한 마디에도 조심해야 한다. 귓속말을 하는 것과 남의 허물을 이야기하거나 음란한 말은 절대 금물이다.

   도움말 : 정상희 (분당), 신중식 (강남 차병원 산부인과 교수)   
자료출처: 베스트 베이비 2 월호
Posted by 알 수 없는 사용자
,
임신을 하면 태아에게 좋지 않은 음식이나 약물을 삼간다. 심지어는 예쁜 아기를 낳기 위해 예쁘고 색깔이 고운 과일만 골라 먹고, 혹시 아기 피부가 닭 껍질처럼 될까봐 닭고기를 먹지 않는 사람도 있다. 음식의 모양과 태아의 건강과는 전혀 상관이 없지만 예쁘고 건강한 아기를 낳으려는 마음이 이런 풍습들을 만들어낸 것 같다. 임신 중에 태아를 위해 정성을 기울이듯이 임신을 준비하는 동안에도 먹는 것을 조심해야 한다. 난자에 좋지 않은 영향을 미치는 음식, 몸을 차갑게 만드는 음식, 자궁을 비롯해 생식기관을 약하게 만드는 음식들을 멀리 하면 건강한 아기를 맞이하기가 좀 더 수월해질 것이다.

 -차가운 음식을 먹지 않는다
몸이 차면 임신이 잘 안 된다. 음식 자체의 성질이 차가워서 먹으면 몸의 열을 내려주는 음식이나 우유, 아이스크림, 빙과류 같이 찬 음식은 모두 좋지 않다. 찬 성질을 갖고 있는 음식들은 보리밥, 돼지고기, 오징어, 밀가루 식품, 냉면, 참외, 수박, 파인애플 등이 있다. 요즘에는 반찬을 대부분 냉장고에 보관했다가 꺼내 먹는데, 차가운 상태로 먹지 말고 따뜻하게 데워 먹는 것이 좋다.

 -독성이 있는 기호품을 피한다
담배는 백해무익하다. 담배의 수백여 가지 독성 물질은 혈관을 수축시켜 자궁과 난소에 영양과 산소가 제대로 공급되지 못하게 막는다. 따라서 흡연을 하면 건강한 난자를 만들지 못하고, 자궁도 허해진다. 임신을 원한다면 두말할 것도 없이 절대 금연해야 한다.
술 역시 좋지 않다. 술을 잘 마시면 약이 된다는 말이 있어 술은 담배보다는 해악이 덜한 것으로 알고 있는 사람들이 많은데, 이는 잘못된 생각이다. 술의 성분인 알코올은 난자의 노화 속도를 가속화시킨다.

 -패스트푸드를 먹지 말자
편하게 먹을 수 있는 것일수록 임신을 방해한다. 물만 부으면 먹을 수 있는 컵라면, 뚜껑만 따면 간편하게 먹을 수 있는 캔과 통조림에는 각종 첨가물과 합성 착색료, 나트륨 등이 많이 함유되어 있어 건강에 아주 좋지 않다. 청량음료, 과자도 마찬가지다. 이런 음식들은 불임은 물론 각종 암을 일으키는 위험 요인임을 잊어서는 안 된다.

 -기름진 음식을 먹지 않는다
삼겹살, 튀김, 버터, 치즈 같은 기름진 음식은 혈액 내의 콜레스테롤과 지질의 농도를 증가시킨다. 결국 혈액이 끈적거리고 탁해져 혈액 순환이 잘 안 되고, 혈관 벽에 찌꺼기가 많이 붙어 혈관이 좁아져 고혈압, 심장병, 동맥경화증 같은 성인병이 생기기 쉽다. 또한 열량이 높기 때문에 비만, 특히 복부비만을 초래하는 원인이 된다. 비만이 불임을 유발할 수 있는 요인이라는 것은 이미 여러 번 언급했다. 살이 찌면 그만큼 불필요한 노폐물이 많이 축적되어 몸을 습하게 만들고, 혈액 순환이 잘 되지 않아 성기능을 관장하는 신장과 자궁, 난소 같은 생식기관을 약하게 만든다.

Posted by 알 수 없는 사용자
,
토마토, 시금치, 포도주, 견과류, 브로콜리, 귀리,  연어, 마늘, 녹차, 머루를

10
대 건강식품으로 선정했다.
권위있는 학자들이 오랜 기간 연구해서 건강에 가장 도움이 되는 식품으로 선정한 것이다.

비타민이나 미네랄 같은 자연 화합물이 충분히 들어있어 각종 질병을 효과적으로 치유해 준다고 알려진 이들 식품의 영양학.



▽ 시금치

  



칼슘과 철분이 많아 성장기 어린이들의 발육과 영양에 좋다.  철, 비타민 B, 아미노산 등이 풍부하게 들어있어 아이들의 신경계통 손상을 막아준다.

또 어른에게는 심장병과 관계가 깊은 혈관에 염증이 생기는 것을 막아준다. 특히 시금치 뿌리는 많은 영양분을 함유하고 있으므로 조리 할 때 뿌리까지 이용하는 것이 좋다.

변비 예방에 효과적인 미용식품이기도 하다.




▽ 귀리 (대용식품 보리)

  

섬유질이 풍부한 귀리는 그대로 먹기 힘들기 때문에 오트밀 등으로 가공해 먹는 경우가 많다.

귀리에 많이 들어있는 칼륨은 고혈압, 심장병에 효과가 있어  콜레스테롤을 제거하고 혈압을 낮추는 효과가 탁월하다. 콩과 우유 등에 섞어 먹으면 특히 좋다.

식물성 섬유가 풍부하게 들어있어 뚱뚱한 사람들의 다이어트 식품이나 변비예방식으로 좋다.   귀리를 대신해 보리를 먹어도 같은 효과를 준다.



▽ 마늘

  

마늘에 들어있는 알리인, 스코르진, 알리신등의 성분은 항세균 화합물로 페니실린보다 강력한 항생물질임이 밝혀졌다.

만병통치약으로 알려진 마늘은 심장병 예방과 항박테리아, 항곰팡이, 종양 성장 억제 작용에 탁월한 효과가 있다. 혈액중 콜레스트롤을 낮추고 혈액순환을 원활하게 해 심혈관계 질환에 이로운 식품이다.

마늘에 들어있는 알리신은 두뇌발달을 도와준다. 또 혈액순환을 왕성하게 하여 기미, 주근깨 , 잔주름 등의 예방에도 효과적이다.



▽ 견과류
  


잣, 땅콩, 호두, 아몬드 같은 견과류는 노화와 심장 질환 예방 효과가 있으며 피부미용에도 좋다. 두뇌 발달에 좋은 필수지방산이 풍부하므로 어린아이들이 많이 먹으면 좋다.

또한 고도 불포화 지방산이 많아 동맥경화증의 원인이 되는 나쁜 콜레스트롤을 낮추어주고 해로운 콜레스트롤을 없애주는 좋은 콜레스트롤을 높여 심장질환을 막아준다.

견과류에 들어있는 엘라직산은 암자살 세포를 활성화시켜 암의 진행을 방해하여 암환자들에게 좋다고 알려져 있으며 비타민 E가 많아 노화 억제와 항암효과를 갖는다.



▽ 붉은 포도주

  

적당량의 붉은 포도주를 마시면 심장병을 예방하고 암 발병률을 낮춘다.  프 랑스인이 다른 서구인에 비해 심장 질환에 덜 걸리는 이유 중 하나는 포도주를 꾸준히 섭취하기 때문이라고 한다.

포도껍질에는 노화를 방지하는 성분도 들어있다.  껍질의 자주색 색소가 강력한 항암작용을 하고 포도주의 떫은 맛을 내는 성분인 탄닌을 비롯한 폴리페놀성분이 몸에 유익한 콜레스트롤을 활성화시키며 혈관을 경직시키는 펩타이드 생성도 막아준다. 



▽ 브로콜리 (대용식품 양배추)

  

칼슘과 비타민 C를 다량 함유한 브로콜리는 살짝 데쳐 먹으면 좋다.  설포라페인이 들어있어 유방암·대장암·위암 발생을 억제하는 효과가 뛰어나다.  베타 카로틴, 섬유질, 비타민 C가 풍부해 면역력을 키워주고  피부를 아름답게 해준다.

브로콜리는 색이 선명하며 봉오리가 단단하게 뭉쳐있고 줄기에 구멍이 나있지 않은 것이 싱싱하다.



▽ 머루 (블루베리)  (대용식품 - 가지)


  

블루베리의 보라색인 안토시아닌계 색소는 동맥에 침전물이 생기는 것을 막아 심장병과 뇌졸증을 막아준다.  블루베리에는 바이러스와 세균을 죽이는 성분이 들어있다.  가지의 보라색도 같은 효과를 갖고 있다.

야채와 과일 중 항독물질을 가장 많이 함유하고 있어 피를 맑게 만들어준다.

알칼리성 식품으로 칼슘과 인이 다량으로 들어있어 어린이의 성장발육과 여성들의 피부미용에도 좋다. 동양에서는 줄기와 뿌리를 약재로 이용하기도 한다.



▽ 녹차

  

비타민 C보다 1백배나 강한 항독작용을 가진 폴리페놀이 다량 들어있어 종양발생을 초기에 억제한다. 위, 간, 심장 등의 질환 예방에 탁월한 효과가 있고 각종 암의 예방효과가 뛰어나다. 또 성인병과 노화를 촉진하는 과산화 지질의 생성을 억제하고 혈액 중의 콜레스테롤을 줄이는 작용이 있다. 담배의 니코틴을 줄이는 작용도 있으므로 흡연자에게 좋은 식품.

차의 쓴 맛과 떫은 맛 성분은 위장 점막을 보호하고 위장운동을 활발하게 해준다.  녹차를 매일 서너잔씩 마시면 심장질환을 억제하고 암 발병을 낮출 수 있다는 연구 보고서가 여러개 나와있다.



▽ 토마토

  

토마토는 피로를 회복시켜 주는 가장 대표적인 식품 중의 하나이다. 카로틴의 전구체인 라이코파인이 풍부하게 들어있어 전립선암과 소화기 계통의 암을 예방하는 데 특히 효과적이다.

감기 바이러스와 스트레스에 대한 저항력을 높여주는 비타민 C도 풍부해 토마토 두개만 먹으면 성인이 하루 필요한 비타민 C를 모두 충족시킬 수 있다.  다른 과일에 비해 칼로리가 낮아 다이어트 하는 사람도 안심하고 먹을 수 있다.

육식이나 산성식품을 먹은 후 토마토를 곁들이면 위 속에서의 소화를 돕고 산성식품을 중화시켜 준다. 또 골다공증과 치 매 예방에도 효과가 있는 것으로 알려져 있다.



▽ 연어 (대용식품 고등어)



  

미식가들 사이에서 인기 높은 생선 중의 하나인 연어. 연어 속에 함유된 지방산(오메가 3)은 류머티즘 루프스로 알려진 면역 결핍 질환을 막아준다.

비타민 A가 풍부하여 감기에 잘 걸리거나 눈이 쉽게 피로해지는 사람, 피부가 건조한 사람에게도 좋다.

고등어는 오메가 3계 지방산인 DHA 함유량이 연어의 두배에 가깝다. 

DHA는 기억력과 학습능력 유지 효과가 있어 같은 학습을 하더라도 DHA가 있으면 뇌세포가 부드러워지고 활성화 되어 정보 전달이 쉽게 되고 노인성 치매를 예방할 수 있다.
Posted by 알 수 없는 사용자
,
 
사용자 삽입 이미지
» 엄마와 아기의 경계선, 태반의 신비
다음 조건을 만족하는 인체 기관은 무엇일까? ① 여성에게만 있다. ② 일정 기간만 존재하다가 없어진다. ③ 지름 20cm, 두께 2.5cm의 원반 모양이다. ④ 약이나 화장품의 재료로 쓰인다. ⑥ 두 사람의 세포가 섞여 만들어진 기관이다.

아마 아이가 있는 분이 쉽게 맞췄을 것이다. 질문의 답은 태반(placenta)이다. 태반은 자궁에 연결된 원반 모양의 기관으로 중앙의 탯줄이 태아의 배꼽과 연결돼 있어 산모와 태아를 직접적으로 잇는다. 아이가 출산하면 함께 배출되는 태반은 여러 면에서 일반 기관과 다른 독특한 특성을 갖고 있다. 산모와 태아의 경계선, 태반의 비밀을 벗겨보자.

정자와 난자가 만나 수정란이 되면 세포분열을 하면서 이동하다 자궁 내벽에 파묻힌다. 이를 착상이라고 한다. 그리고 착상이 일어난 지점에서 수정란과 자궁에 분화가 일어나 태반이 만들어지기 시작한다. 수정란의 일부가 자라서 물질 전달을 담당하는 융모막으로 변하고, 자궁의 일부는 태반의 가장 바깥 부분을 둘러싸는 탈락막으로 변한다. 즉 태반의 절반은 태아에서, 절반은 산모에서 왔다는 얘기다.

■ 태아의 든든한 보호막

태반은 태아가 자라는데 필요한 핵심적인 기능을 담당한다. 가장 중요한 기능은 산모와 태아의 물질 교환이다. 산모의 산소와 양분을 태아로 전달하고, 태아의 이산화탄소와 노폐물을 산모에게 전달한다. 이때 핵심은 산모의 혈액과 태아의 혈액이 섞이지 않는다는 점. 산모의 혈관과 태반의 혈관 사이에는 조직액이 있어 이 둘을 분리한다. 태반이 꼭 필요한 것만 걸러 보내는 필터 역할을 하는 셈이다.

덕분에 산모의 면역체계가 태아를 공격하지 않는다. 우리 몸의 면역체계는 자신이 아닌 것을 공격하도록 돼있다. 만약 산모의 혈액이 태아에게 직접 전달된다면 혈액 속의 항체와 식균세포들은 태아의 세포를 공격해 죽일 것이다. 또 혈액이 섞이지 않기 때문에 산모가 세균에 감염돼도 태아는 안전하다. 흥분 상태를 만드는 아드레날린 같은 호르몬은 태반을 통과하면서 그 활성이 없어지기도 한다. 이처럼 태반은 태아에게 든든한 방어막이 된다.

하지만 태반이 모든 물질을 걸러내는 것은 아니다. 지용성으로 크기가 작은 분자들은 태반을 쉽게 통과할 수 있다. 대표적인 예가 니코틴, 알코올이다. 만약 산모가 흡연을 하거나 음주를 하면 니코틴과 알코올은 태반을 유유히 통과해 태아에게 그대로 전달된다. 또 세균은 통과하지 못하나 이보다 작은 바이러스는 태반을 통과할 수 있다. 풍진, 수두 등이 대표적이다. 따라서 결혼한 여성은 자신이 아이를 갖기 전에 이들 바이러스에 대한 항체가 있는지 검사해야 한다.

■ 산모와 태아에 필수 물질 분비

태반의 역할은 물질 교환에 그치지 않는다. 태반은 태아가 아직 몸의 기관을 제대로 갖추지 못했을 때 그 기관들의 역할을 대신한다. 우리 몸에서 간은 포도당을 글리코겐으로 바꿔서 저장했다가 에너지가 급히 필요할 때 내보낸다. 태아에서 간이 만들어지기 전까지 태반이 이 역할을 대신한다. 태반 덕분에 태아는 산모의 영양 상태가 들쭉날쭉해도 비교적 안정적으로 영양분을 공급받을 수 있다.

뇌하수체를 대신해 태아의 뇌 발달을 촉진하기도 한다. 태아의 뇌는 임신 24~28주 사이에 발달하는데 이때 뇌를 활성화시키는 신경전달물질이 중요한 역할을 한다. 산모의 뇌하수체에서 분비된 호르몬과 신경전달물질 중 일부는 태반을 통해 태아에게도 전달된다. 예를 들어 산모가 기분 좋을 때 분비되는 도파민은 태아에게도 전달돼 태아를 기분 좋게 하고 뇌 세포를 활성화 한다.

또 태반은 산모가 임신 동안 필요한 호르몬을 직접 생산해 산모 쪽으로 분비한다. 임신 초기에 나오는 융모성선자극호르몬은 황체 퇴화를 막아 프로게스테론과 에스테론을 분비하게 한다. 프로게스테론과 에스테론은 자궁 내막을 유지시켜 유산을 막고, 모유 수유를 위해 유선을 발달시키는 등 임신 동안 매우 중요한 호르몬이다. 이 융모성선자극호르몬이 임신 초기 입덧을 유발하는 원인으로 알려져 있다. 임신 4개월이 되면 태반에서 직접 프로게스테론을 분비하기 시작한다.

■ 과학자들이 태반에 주목하는 이유

다양한 역할을 하는 만큼 태반에는 태아가 성장하는데 필요한 모든 것이 담겨 있다. 영양분과 호르몬은 물론이고, 간세포증식인자(HGF)나 신경세포증식인자(NGF) 같은 성장인자와 세포증식에 관련된 사이토카인도 들어있다. 의학계에서는 이 같은 사실에 주목해 오래 전부터 태반을 의약품으로 쓰고 있다. 기원전 4세기 히포크라테스가 태반의 효능에 대해 언급한 바 있고, 우리나라의 허준의 동의보감에도 태반의 기능에 대한 설명이 있다. 임상실험 결과 피부 미용과 통증 치료에 효과가 있고, 고혈압, 당뇨병, 관절염 등에도 효과가 있는 것으로 나타났다.

현재 국내에는 치료목적으로 갱년기 장애와 간질환 환자에게 태반 의약품이 허가돼 있다. 태반 추출물을 살균해서 가공한 제품이다. 그러나 태반은 여러 물질이 섞여있는 혼합물로 아직 각각의 성분이 어떤 기능을 하는지 정확히 밝혀지지 않은 상태다. 따라서 부작용이 있을 수 있고, 태반을 추출한 산모의 건강 상태에 따라 약효에도 차이가 날 수밖에 없다.

태반에는 최근 주목받는 줄기세포도 들어있다. 특히 탯줄과 태반 안의 혈액을 ‘제대혈’이라고 하는데 이 속에 태아의 줄기세포가 다량 들어있다. 태반의 탈락막에는 산모의 줄기세포가 있다. 줄기세포는 모든 세포로 분화가 가능한 세포로 손상된 조직에 넣어주면 치료 효과가 크다. 태반의 줄기세포를 보관해 두면 장차 산모와 아이가 질병에 걸렸을 때 이용할 수 있다.

■ 기생충 흉내 내는 태반

지난 11월 10일에는 산모와 유전적 구성이 다른 태반이 산모의 면역체계에 의해 공격받지 않는 이유가 밝혀졌다. 태반이 살아남는 이유는 기생충의 전략과 비슷하다. 기생충 세포의 표면에는 포스포콜린이라는 분자가 있다. 이 분자는 사람의 면역체계를 속여 마치 기생충을 자신의 일부처럼 받아들이게 한다. 덕분에 기생충은 사람의 몸속을 돌아다니면서도 면역체계의 공격을 받지 않을 수 있다. 영국 리딩대 필 로우리 박사는 태반이 기생충처럼 자신을 위장해 면역의 공격으로부터 피한다고 말했다. 태반에서 합성되는 대부분의 단백질에는 포스포콜린 분자가 달려있다.

태반이 면역체계를 피해 산모의 몸과 하나가 되는 이유를 완전히 밝힌다면 의학계의 오랜 난제를 해결할 수 있다. 장기이식에서 가장 큰 문제는 체내의 면역체계가 기껏 이식한 장기를 타인으로 판단해 죽이는 데 있다. 자가면역질환도 비슷하다. 면역체계가 어떤 이유에서인지 자기 조직을 타인으로 인식해 공격해서 생기는 병으로 류머티즘관절염이 대표적이다. 태반의 비밀이 풀린다면 장기이식과 자가면역질환 치료에 결정적인 해법을 제시할 것으로 보인다.

예전에 불결한 것으로 여겨 버려졌던 태반은 오늘날 현대 의학이 해결하지 못하는 질병을 치료할 대안으로 떠오르고 있다. 태반의 신비가 밝혀져 난공불락으로 남아있던 질병들이 차례차례 극복되기를 기대해 본다. (글 : 김정훈 과학칼럼니스트)

과학향기 출처 : KISTI의 과학향기

Posted by 알 수 없는 사용자
,


예전에 만든거라 이제 소스도 없어지고 EXE 실행화일만 남았네요. (소스없음 ㅜ.ㅜ)

이 프로그램은 관리자(상담원)과 1:1 상담 목적으로 만든 프로그램입니다.
간단히 이야기하면.. 대화방 기능이 없는 채팅이지요.

사용중인 홈페이지 : http://www.mindcrony.com/

* 잡설..

채팅은 서버에 부하를 줍니다. 하지만, 이 프로그램은 서버가.. 바로
개인 컴퓨터이랍니다 ^^... 그래서 홈페이지 서버 부하랑은 별도~~~

쇼핑몰이나 이런곳에 적용하면 괜찮을 듯 하네요.

* mindcrony_chat.exe 프로그램

2024 포트를 사용합니다. (외부에서 접근 가능하도록 세팅해주셔야합니다.)
연결 후 동적으로 계속 연결되면서 관리자의 글을 전송해줍니다.

AJAX 통신으로 들어온 대화내용과 사용자 ip:port:cookie 으로써, 해당 채팅창에
뿌려줍니다.

* 홈페이지 설치 방법

<iframe name='chat_windows' src="http://아이피:2024/conn?사용자이름" width="430" height=410 frameborder='0' topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' scrolling=no></iframe>

이렇게 설치하시면, 아래처럼 창이 나오게됩니다. 물론 index.txt 화일 수정하면,
마음대로 변경가능합니다.

사용자이름 역시 제로보드나 이런 회원프로그램과 연동이 가능합니다.
저 같은 경우에는 싸이월드 미니홈피를 홈페이지 연결시켜, 방문자추적&대화이름
나오게 해버렸습니다 클럭;;ㅋㅋ





* 프로그램 동작 화면.

사용자 삽입 이미지
 

* 디자인 변경 방법

같이 첨부한 index.txt 화일 내용을 수정해주시면 됩니다.

* Copyright ?

index.txt 를 보시면, 길호님의 일부 소스가 첨부되어있습니다.
길호님의 상담프로그램을 참고해서 만든거라 .. ^^ㆀ


출처:http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57630&page=1
Posted by 알 수 없는 사용자
,


<?
# 특징: 본문 중에 나타난 모든 욕들을 한꺼번에 콤마로 구분하여 리턴

# 방법: 속도를 고려하여 전진방식의 매칭으로 처리
# 매칭할 단어들을 배열A에 저장해 놓는다.
# 함수로 위 단어의 첫글자를 따로 배열B로 만든다.
# 본문을 한글자씩 전진하면서 그 글자랑 매칭되는 문자가 있는지 B배열을 채크한다.
# B배열은 A배열에서 그 문자로 시작하는 첫 단어의 index를 가지고 있으며
# A배열의 그 위치부터 현재 문서 위치의 문자열이랑 비교를 하는데,
# 문자열 비교를 위하여 문서로부터 단어 최대길이만큼 짤라서 비교를 한다.
# 저작권: 니맘 대로 하세요.

# 필터링할 단어들. 정렬되어 있어야 한다.
# 심한 욕들이 있어서 첨부파일로 넣었습니다.
include "words_text.php";

# [수집된 단어의 첫 2바이트] => 그 글자가 처음 나오는 단어의 인덱스
#
function get_indexOfWords(&$words)
{
  $arr= array();
  $ch_old=0;
  foreach($words as $k=>$v){
    $ch= $v{0}.$v{1};
    if ($ch_old==$ch) continue;

    $ch_old=$ch;
    $arr[$ch]= $k;
  }
  return $arr;
}

# 상수
# 배열값 중에서 가장 긴 길이와 같거나 더 길면 됨. 정확하지 않아도 무방..
# 왜냐면, 본문 중에서 비교할 문자열을 적당히 짜를 용도이므로
define('MEX_WORD_LEN', 10);

function fuck_match (&$words, $str)
{
  $RET_WORDS= array();
  $char2idx= array();

  $char2idx= get_indexOfWords($words);
  $num_words= sizeof($words);
  $len_str= strlen($str);

  $han_flag=0;
  for ($i=0; $i<$len_str; $i++){
    if ($han_flag){      # 한글의 두번째 바이트 차례는 건너뜀
      $han_flag=0;
      continue;
    }
    $ch= $str{$i};
    if (127 < ord($ch)){
      $ch.= $str{$i+1};  # 한글이면 2바이트를 1글자로 처리
      $han_flag=1;
    }

    if (! isset($char2idx[$ch]))  # 첫글자가 일치하는 단어의 인덱스가 없으면 건너뜀
      continue;

    $str_part= substr($str, $i, MEX_WORD_LEN);  # 본문 중에 비교할 부분 문자열

      // echo "@$i@ 단어의 첫글자 일치의 경우  ($str_part == {$words[$char2idx[$ch]]})<br>";

    $match_word= '';
    for($j=$char2idx[$ch]; $j< $num_words; $j++){
      if (strpos($str_part, $words[$j])===0) # 단어가 완전히 포함되면
        $match_word= $words[$j];            # 임시저장
      if ($str_part<= $words[$j]){    # 단어가 비교 문자열보다 커지는 순간에 탈출
        if ($match_word!='')
          $RET_WORDS[]= $match_word;  # 그 순간의  임시 단어 수집
        break;
      }
    }
    if ($match_word && $j==$num_words){
    // echo "@$i@ 정렬에 문제가 있어서 저장 못하고 지나왔다면? ($match_word)<br>";
      $RET_WORDS[]= $match_word;
    }
  }
  if(0==sizeof($RET_WORDS))    return '';

  return implode(', ', array_unique($RET_WORDS));  # 중복 제거하고 리턴
}


#--------------- 요 밑으로는 테스트 --------------------------#

function __get_microtime(){
  list($usec, $sec)=  explode(" ",microtime());
  return (float)$usec + (float)$sec;
}


$time_start= __get_microtime();

$test_str= <<<TEST
여기는  별의별 헛소리를 다 넣어도 된다 무조껀 뻐큐
테스트용 문자열이므로 아무 의미가 없습니다 자세히 읽어 보지 말기를 바랍니다.
하하 호호 히히 쉽 스까이
내가 생각하는 아이템 사이트에서는
사실은 자유게시판이 아니라 회원제에서는 욕이 나오기는 힘들고 관리하기도 쉽다.
따라서 무단광고, 성인광고 처리에 집중하자.
일부러 표기법을 어기거나 특수분자랑 뒤섞는 등의 "정해지지 않는" 단어 처리에 대해서는
쉽게 생각하면 새로운 광고 단어 유형을 그때그때 수동으로 수집처리하면 된다.

자동으로 처리하려면?
광고 단어의 글자 사이에 특수문자들을 끼워 넣은 경우를 매칭하기 위하여
공백을 포한한 특수문자는 모두 제거하고 매칭할까.
3글자 이상의 길이면 가능하겠는데. 이런 좁밥

2글자 이하의 매칭은 특수문자 제거하고 매칭시 엉뚱한 문자열이 걸릴 수 있다. ㅅㅂㄹㅁ','凸','갈보
그러므로 2자 이하의 단어 매칭시 바로 광고라고 확정하지 말고 가중 점수로써 처리하자.
시발시발 시발 새새끼 개새끼
호홋
TEST;

$result= fuck_match ($words, $test_str);

echo "결과= ($result)<hr>실행에 걸린 시간=". (__get_microtime()- $time_start);
?>

펌:http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57637&page=1

Posted by 알 수 없는 사용자
,

$time_start= _get_microtime();
$count_C=0;
$array_to_search_in = array_flip($MysqlReservedWords);
foreach($MysqlReservedWords as $k=> $v){
  if (isset($array_to_search_in[$v]))
    $count_C++;
  else
    $noSearch_C.="($v)";
}
$time_C= _get_microtime()- $time_start;

arr_search_bin()로 찾은 갯수=(262),                검색시간=(0.0029969215393066)
array_flip()과 isset()을 이용해 찾은 갯수=(262), 검색시간=(0.00027084350585938)


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


$array_to_search_in = array_flip($MysqlReservedWords);  # 뒤집고
if ($array_to_search_in ('찾을값')){
  찾았으니 처리할 거 처리해;
}
Posted by 알 수 없는 사용자
,

제로보드외 타게시판도 가능합니다.


사용자 삽입 이미지

※ 이전 버전에 비해 달라진 점
① 숫자만 되던 것에 영문도 가능하게 함
② 이미지의 숫자를 점 하나 하나 찍어서 만들던 것을, 비트맵 폰트파일을 이용하여 더욱 빠르고 간편하게 구현
③ 특정 게시판에는 스팸차단기능이 비활성화되도록 설정 가능
④ 기존, 3개의 파일로 쪼개져 있던 것을, 1개의 파일로 모음 (프로그램파일 1개+폰트파일 1개)
⑤ 기타, 소스를 더욱 효율적으로 정리
(도움을 주신 비혼(BiHon)님께 감사드립니다.)


※ 기존 1.5로 적용하시던 분들은, skin/ 디렉토리에 있는 3개의 파일을 지우시고,
이 2개의 파일을 올리시면 됩니다. (제로보드 관련파일 및 스킨파일 수정 불필요)

※ 본 프로그램은 서버에서 GD 라이브러리를 지원해야 가능합니다.

※ 앞으로 더 이상의 업그레이드는 하지 않을 예정입니다. (개인적인 사정으로)

사용자 삽입 이미지
  1. ZM_Crypt 2.0 특징
    1. 적용이 쉽다
      PHP 프로그램을 몰라도, HTML만 알면 쉽게 적용 가능합니다.
      기본적으로 파일 4개에 1줄씩만 넣어주시면 작동합니다.
    2. 게시물 차단 + 덧글(코멘트) 차단
      최근에는 덧글스팸도 많이 늘었습니다.
      본 프로그램은 게시물 뿐만 아니라 덧글(코멘트)의 자동등록도 차단합니다.
    3. 디자인 변경 용이
      여러 스킨을 사용해도, 각 스킨마다 원하는 위치에
      예쁘게 삽입 가능합니다.
    4. 보안코드가 텍스트 아닌 이미지
      보안코드가 텍스트가 아닌 이미지로 출력됩니다.
      그렇다고, 기존 이미지 파일을 불러오는 것이 아닙니다.
      GD 라이브러리를 이용, 자체 폰트함수로 그때마다 숫자 이미지 파일을 뿌려주고
      자동 삭제됩니다.
      때문에, 기존 텍스트 기반의 보안코드보다 보안성이 강합니다.
    5. 씨앗(Seed)을 바탕으로 한 자체 암호화 함수 내장여러분이 처음에 씨앗(Seed)을 설정할 수 있습니다.
      암호화는 그 씨앗을 바탕으로 이루어집니다.
      때문에, 더욱 더 안전합니다.
  2. 설치방법
    1. 환경설정 (zm_crypt.php 수정)
      ① 13째줄(씨앗) : 반드시 변경, 알파벳+숫자로 이루어진 암호 (외울 필요 없음)
      ② 14째줄(자릿수) : 보안코드의 자릿수 설정 (기본값:4자리)
      ③ 15째줄(보안코드 문자종류) : 숫자+알파벳, 또는 숫자만 설정 가능 (기본값:숫자+알파벳)
      ④ 스팸광고게시물 차단 필요없는 게시판 id 입력 : 게시판에 따라 차단 필요없는 게시판 이름(id)를 콤마(,)로 구분하여 입력
    2. 업로드제로보드(bbs) 디렉토리 안에 'skin' 디렉토리에 아래 두 파일 업로드.
      zm_crypt.php (zmCrypt 프로그램 파일)
      andale12.gdf (글꼴 파일)
      예:
      /bbs/ : 제로보드 설치 디렉토리
      /bbs/skin/ (특정 스킨 디렉토리가 아님) ☜ 이 디렉토리에 설치
      /bbs/skin/snowboard/ : 스노우보드 스킨 디렉토리
    3. 제로보드 파일 수정 (write_ok.php , comment_ok.php)위 두 파일을 열면 5~7째줄에 아래와 같은 코드가 똑같이 들어 있습니다.
      include "_head.php";
      위 코드의 바로 아랫줄에 아래 코드를 삽입합니다.
      include ("./skin/zm_crypt.php" ) ;
      저장 후 업로드 하여 덮어씌우시면 됩니다.
    4. 스킨 파일 수정 #1 (write.php)<?=$hide_start?> 코드 아랫줄에 다음 코드 삽입
      <? $zCryptClass='input' ; include ("./skin/zm_crypt.php" ) ; ?>
      (위에서 input 는 입력 폼의 스타일 클래스(class)입니다. 이해 안 되시면 패쓰!)

      이후, 원하시는 위치에 아래와 같이 넣으시면 됩니다.
      <?=$zCrypt_Img?> : 보안코드 이미지
      <?=$zCrypt_Form?> : 보안코드 입력폼
      (<?=$hide_start?> ~ <?=$hide_start?> 안에 넣어야 로그인한 회원에게는 숨길 수 있습니다.)
    5. 스킨 파일 수정 #2 (view_write_comment.php)<?=$hide_c_password_start?> 코드 아랫줄에 다음 코드 삽입
      <? $zCryptClass='input' ; include ("./skin/zm_crypt.php" ) ; ?>
      (위에서 input 는 입력 폼의 스타일 클래스(class)입니다. 이해 안 되시면 패쓰!)

      이후, 원하시는 위치에 아래와 같이 넣으시면 됩니다.
      <?=$zCrypt_Img?> : 보안코드 이미지
      <?=$zCrypt_Form?> : 보안코드 입력폼
      (<?=$hide_c_password_start?> ~ <?=$hide_c_password_end?> 안에 넣어야 로그인한 회원에게는 숨길 수 있습니다.)
    6. 설치 완료설치완료되었습니다. 테스트해 보시기 바랍니다.
      로그아웃 후 테스트해 보시는 것, 잊지 마세요.
  3. 고급 환경설정
    1. 환경설정 (zm_crypt.php 수정)20~17줄에는 고급 환경설정 코드가 있습니다.
      보안코드 글자색, 바탕색 등을 변경할 수 있습니다.
      주석이 자세히 되어 있으므로 쉽게 변경 가능합니다.
  4. 기타 문의사항 및 정보
    1. 이메일 : ZnMee@naver.com (지앤미)
    2. 블로그 : blog.naver.com/ZnMee (知&美 : 앎과 앎다움)
    3. 프로그램 : ZM_Crypt 2.0 (2007.07.18. Released)

※ 2007년 11월 07일 추가 정보

제가 테스트하고 있는 커뮤니티 게시판에 본 ZM_Crypt 2.0을 적용한 이후로
자동 스팸광고 게시물이 어제 처음으로 등록되었습니다.
어떻게 등록했나 보니, 아예 회원가입을 자동으로 하여 로그인 한 후
게시물을 등록하는 방식이더군요.
이에, 회원가입 페이지에도 보안코드를 입력하도록 조치하였습니다.

제로보드 프로그램이 있는 디렉토리에 있는
member_join.php 에 보안코드 입력 폼을,
member_join_ok.php 에 검사 코드를 추가하면 됩니다.

단, 이렇게 했을 경우, 오류가 발생합니다.
zm_crypt.php 파일을 열어 18번째 줄 다음에
if (!$id) {$id=0;}
위와 같이 1줄의 코드를 넣어 주시면 오류가 해결됩니다.

출처:http://blog.naver.com/znmee/70019857377
Posted by 알 수 없는 사용자
,

페이징 함수

인터넷관련 2007. 12. 4. 10:03
일반적인것과 그룹화 한 것 두가지 샘플이 있으니 보시면 아실거 같고

리팩토링은 알아서 하시길 바랍니다.
버그있음 댓글달아주세요 (그룹화 해본적이 없어 이런상으로 계산된거라 제대로 나오는지는 모르겠습니다.)

본 코드는 아무렇게가 갖다 쓰심 됩니다.


<?php
// vim600: ts=4 sw=4

class C
{
// constants
    const ERR_PAGING_ROW                    = 10001;
    const ERR_PAGING_SCALE                  = 10002;
    const ERR_PAGING_PART_INFO_INVALID      = 10003;
    const ERR_PAGING_PART_NO_NOT_INTEGER    = 10004;
    const ERR_PAGING_PART_COUNT_NOT_INTEGER = 10005;

// only static
    private function __construct () {}


/**
    @param array
        int total  : 전체 게시물수
        int page    : 현제 페이지번호
        int row    : 페이지당 게시물 수
        int scale  : 페이징 블럭 (페이지에 보여질 번호판 수)
        string link : page=xxx 를 지외한 모든 링크
            예) aaa.php?a=$a&b=$b&c=$c&page=$page 이런 링크가 필요하다면
                            link = "a=$a&b=$b&c=$c";
        array group : 분할정보 (division 정보) 미사용시 필요없음
            int no => int count
    @param part : boolean - 데이타를 group(division) 화 하는지의 여부

    @return array
        total          : 전체 게시물 수
        page            : 현제 페이지 번호
        totalpage      : 총 페이지 수
        prev_link      : 이전 링크
        paging          : 번호판 리스트
        next_link      : 다음 링크
        start_link      : 처음 링크
        end_link        : 마지막 링크
        enable_prev    : 이전페이지 가능한가?
        enable_next    : 다음페이지 가능한가?

        object query    : group 화 정보  (쿼리용 변수)
            int limit  : 쿼리에서 사용할 limit
            int offset  : 쿼리에서 사용할 offset
            array group : 쿼리에서 사용할 group number list
*/

    public static function paging (array $arr, $part = false)
    {
        $total = intval($arr['total']);
        $page = intval($arr['page']);
        $row = intval($arr['row']);
        $scale = intval($arr['scale']);
        $link = $arr['link'];
        $group = $arr['group'];

        if($link) $amp = '&';

        if($row < 1)
            throw new Exception (self::ERR_PAGING_ROW);
        if($scale < 1)
            throw new Exception (self::ERR_PAGING_SCALE);

        if($page < 1) $page = 1;
        $totalpage = ceil($total / $row);
        if($page > $totalpage) $page = $totalpage;

        if($total > 0) {
            $start = (intval($page / $scale) * $scale) + 1;
            if(!($page % $scale)) $start -= $scale;
            $end = $start + $scale - 1;
            if($end > $totalpage) $end = $totalpage;
            $prev = $start - $scale;
            $next = $start + $scale;
        }

        for($i = $start; $i <= $end; $i++)
            $paging_loop[] = array('page_num' => $i,
                                  'page_link' => "page=".$i.$amp.$link);

        $count = count($paging_loop);
        if($count > 0) $paging_loop[$count-1]['end'] = 1;


        $limit = $row;
        $offset = ($page - 1) * $row;

        if(!$part) {
            $_grp->limit = $limit;
            $_grp->offset = $offset;
        }
        else {
            if(!is_array($group))
                throw new Exception(self::ERR_PAGING_PART_INFO_INVALID);

            try {$_grp = self::_make_query_info($group, $limit, $offset); }
            catch (Exception $e) { throw $e; }
        }

        $arr = array('total' => $total,
                    'page' => $page,
                    'totalpage' => $totalpage,
                    'prev_link' => 'page='.$prev.$amp.$link,
                    'paging' => $paging_loop,
                    'next_link' => 'page='.$next.$amp.$link,
                    'start_link' => 'page=1'.$amp.$link,
                    'end_link' => 'page='.$totalpage.$amp.$link,
                    'enable_prev' => ($page > $scale) ? true : false,
                    'enable_next' => ($end < $totalpage) ? true : false,

                    'query' => $_grp
          );

        return $arr;
    }

    private static function _make_query_info(array $grp, $limit, $offset)
    {
        $start = $offset;
        $end = $offset + $limit;

        $sum = 0;
        $found = false;
        $pos = array();
        $_offset = 0;

        foreach($grp as $part => $count) {
            if(!is_int($part) || $part < 1)
                throw new Exception(self::ERR_PAGING_PART_NO_NOT_INTEGER);
            if(!is_int($count))
                throw new Exception(self::ERR_PAGING_PART_COUNT_NOT_INTEGER);

            $sum += $count;

            if($sum > $start) $found = true;
            if($found) {
                $pos[] = $part;
                if(!$_offset) $_offset = $offset + $count - $sum;
            }
            if($sum >= $end) break;
        }

        if(!is_array($pos))
            throw new Exception(self::ERR_PAGING_PART_INFO_INVALID);


        $group->group = $pos;
        $group->offset = $_offset;
        $group->limit = $limit;

        return $group;
    }

    public static function get_errmsg ($const)
    {
        switch($const) {
            case self::ERR_PAGING_ROW:
                return '페이지당 출력수를 셋팅해 주세요';
            case self::ERR_PAGING_SCALE:
                return '페이징 블럭을 셋팅해 주세요';
            case self::ERR_PAGING_PART_INFO_INVALID:
                return '분할정보가 없거나 잘못되었습니다.';
            case self::ERR_PAGING_PART_NO_NOT_INTEGER:
                return '분할번호가 숫자가 아니거나 없습니다.';
            case self::ERR_PAGING_PART_COUNT_NOT_INTEGER:
                return '해당분할그룹의 정보가 숫자가 아닙니다.';
            default: return '알수 없는 에러입니다.';
        }
    }
}

// example1 - 그룹화 하지 않은 경우
$arr = array('total' => 5,
            'page' => 1,
            'row' => 10,
            'scale' => 10);

try {$paging = C::paging($arr); }
catch (Exception $e) {
    print 'LINE: '.$e->getLine().' '
          .C::get_errmsg($e->getmessage());
    exit;
}

// pgsql 에서는 limit offset 이 limit $limit offset $offset
// mysql 에서는 limit $offset,$limit
// oracle 에서는 RN between ($offset + 1) and ($offset + $limit)
// 또는 각자 알아서 영역을 구하시길
$query = "select xxxxx from xxxx order by xxx "
        ."limit ".$paging['query']->limit." offset ".$paging['query']->offset;

$tpl->assign($paging);


// example2 - 그룹화 할 경우 (division 사용시)
// 앞은 분할번호 뒤는 갯수
// 최신정보부터 뒤집어 넣습니다.
$division = array(5 => 205,
                  4 => 5000,
                  3 => 5029,
                  2 => 4800
  );

$arr = array('total' => 15034,
            'page' => 22,
            'row' => 10,
            'scale' => 10,
            'group' => $division);

try {$paging = C::paging($arr, true); }
catch (Exception $e) {
    print 'LINE: '.$e->getLine().' '
          .C::get_errmsg($e->getmessage());
    exit;
}

$query = "select xxxxx from xxxx "
        ."where xxxx "
          ."and division in (".implode(',', $paging['query']->group).") "
        ."order by xxx "
        ."limit ".$paging['query']->limit." offset ".$paging['query']->offset;

$tpl->assign($paging);

?>

펌:http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57690&page=1
Posted by 알 수 없는 사용자
,
Cairo is a 2D graphics library with support for multiple output devices. Currently supported output targets include the X Window System, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through glitz), Quartz, and XCB.


cairo 는 리눅스의 핵심 그래픽 라이브러리 입니다.
X Window 에서 부터 다양한 곳에 핵심적으로 쓰이고 있습니다.

php 에 붙일 생각을 못했었는데, gd 가지고 삽질하고 있는 모습을 본 어떤분이 권해주셔서 설치했습니다.
각 리눅스 배포판에서 cairo 를 지원하므로, cairo 는 그냥 설치하시면 되고,
php 용 래퍼만 phpize 적용하시면 바로 사용하실 수 있습니다.

php-cairo : http://sourceforge.net/projects/klecks/ (gentoo ebuild)
cairo manual : http://cairographics.org/manual/

php-cairo 에 klecks 라는 프로젝트는 svg 를 다루게 해 줍니다만, 패스~

php-cairo 에는 메뉴얼이 없습니다.
cairo 의 순수 래퍼라서 cairo 메뉴얼을 보면 되기 때문일 것입니다.

작명이 일관적이지 않은 느낌도 있고, 좀 헷갈리긴 합니다만, 예제정도는 들어있으니 따라하다 보면 할 만 합니다.

struct 를 리턴하는것을 기준으로 class 를 리턴하도록 한듯 합니다.

아래는 예제를 직접 만들어 본 것입니다.
절대! 전혀! 가볍습니다.
gd 에 비해 오래걸린다는 생각이 조금도 안듭니다.
gd 보다 하는일이 많다는것을 생각한다면 훨씬 효율적일듯 합니다.

FF

IE



<?php

$surface
 = new cairo_image_surface(0, 500, 500
);
$context = new cairo_context($surface
);


$x = 30
;
$y = 30
;
$l = 16
;
$ll = 30
;
$r = 0
;

$b = 1
;
$cr = 1
;
$cg = 0
;
$cb = 0
;
$ca = 1
;

$points = makeflower($x, $y, $l, $ll, $r, 5
);
drawflower($context, $points, $cr, $cg, $cb, $ca
);
$x += 15
;
$y += 10
;
$l *= 1.05
;
$ll *= 1.05
;
$r += 7
;
$b *= 1.1
;
$cr -= .05
;
$cb += .05
;
$ca -= .05
;

for(
$i = 0; $i < 18; $i
++) {
   
$points = makeflower($x, $y, $l, $ll, $r, 5
);
   
drawflower($context, $points, $cr, $cg, $cb, $ca, $b
);
   
$x += 15
;
   
$y += 10
;
   
$l *= 1.1
;
   
$ll *= 1.1
;
   
$r += 7
;
   
$cr -= .05
;
   
$cb += .05
;
   
$ca -= .05
;
   
$b *= 1.1
;
}
$points = makeflower($x, $y, $l, $ll, $r, 5
);
drawflower($context, $points, $cr, $cg, $cb, $ca
);


$x = 30
;
$y = 80
;
$l = 30
;
$ll = 13
;
$r = 0
;

$b = 1
;
$cr = 1
;
$cg = 0
;
$cb = 0
;
$ca = 1
;

$points = makestar($x, $y, $l, $ll, $r, 5
);
drawstar($context, $points, $cr, $cg, $cb, $ca
);
$x += 15
;
$y += 17
;
$l *= 1.1
;
$ll *= 1.1
;
$r += 7
;
$b *= 1.1
;
$cr -= .03
;
$cg += .02
;
$cb += .05
;
$ca -= .05
;

for(
$i = 0; $i < 18; $i
++) {
   
$points = makestar($x, $y, $l, $ll, $r, 5
);
   
drawstar($context, $points, $cr, $cg, $cb, $ca, $b
);
   
$x += 15
;
   
$y += 17
;
   
$l *= 1.05
;
   
$ll *= 1.05
;
   
$r += 7
;
   
$cr -= .03
;
   
$cg += .02
;
   
$cb += .05
;
   
$ca -= .05
;
   
$b *= 1.1
;
}

$points = makestar($x, $y, $l, $ll, $r, 5
);
drawstar($context, $points, $cr, $cg, $cb, $ca
);

$surface->write_to_png('cairo.png'
);

function
makestar($x, $y, $l, $ll, $r, $t
)
{
   
$ra = 360 / ($t << 1
);
    for(
$i = 0; $i < $t; $i
++) {
       
$r += $ra
;
       
$points[] = (sin($r * M_PI / 180) * $l) + $x
;
       
$points[] = (cos($r * M_PI / 180) * $l) + $y
;

       
$r += $ra
;
       
$points[] = (sin($r * M_PI / 180) * $ll) + $x
;
       
$points[] = (cos($r * M_PI / 180) * $ll) + $y
;
    }

    return
$points
;
}

function
drawstar(&$context, $points, $r, $g, $b, $a, $border = false
) {
   
$context->move_to($points[0], $points[1
]);
    for(
$i = 2; $i < count($points); $i += 2
) {
       
$context->line_to($points[$i], $points[$i + 1
]);
    }
   
$context->close_path
();

   
$context->set_source_rgba($r, $g, $b, $a
);
    if(
$border === false
) {
       
$context->fill
();
    } else {
       
$context->close_path
();
       
$context->set_line_width($border
);
       
$context->stroke
();
    }
}

function
makeflower($x, $y, $l, $ll, $r, $t
)
{
   
$ra = 360 / ($t * 3
);
   
$points[] = (sin($r * M_PI / 180) * $l) + $x
;
   
$points[] = (cos($r * M_PI / 180) * $l) + $y
;
    for(
$i = 0; $i < $t; $i
++) {
       
$r += $ra
;
       
$points[] = (sin($r * M_PI / 180) * $ll) + $x
;
       
$points[] = (cos($r * M_PI / 180) * $ll) + $y
;

       
$r += $ra
;
       
$points[] = (sin($r * M_PI / 180) * $ll) + $x
;
       
$points[] = (cos($r * M_PI / 180) * $ll) + $y
;

       
$r += $ra
;
       
$points[] = (sin($r * M_PI / 180) * $l) + $x
;
       
$points[] = (cos($r * M_PI / 180) * $l) + $y
;
    }

    return
$points
;
}

function
drawflower(&$context, $points, $r, $g, $b, $a, $border = false
)
{
   
$context->move_to($points[0], $points[1
]);
    for(
$i = 2; $i < count($points); $i += 6
) {
       
$context->curve_to($points[$i], $points[$i + 1], $points[$i + 2], $points[$i + 3], $points[$i + 4], $points[$i + 5
]);
       
$context->line_to($points[$i + 4], $points[$i + 5
]);
    }
   
$context->close_path
();

   
$context->set_source_rgba($r, $g, $b, $a
);
    if(
$border === false
) {
       
$context->fill
();
    } else {
       
$context->close_path
();
       
$context->set_line_width($border
);
       
$context->stroke
();
    }
}

?>
<html>
<head>
<!--[if IE]>
<style>
div {
    width:500px;
    height:500px;
    filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='asdf.png', sizingMethod='scale');
}
div img {
    visibility:hidden;
}
</style>
<![endif]-->
</head>
<body bgcolor="#999999">
<div>
<img src="cairo.png" />
</div>
</body>
</html>



License


Cairo is free software and is available to be redistributed and/or modified under the terms of either the GNU Lesser General Public License (LGPL) version 2.1 or the Mozilla Public License (MPL) version 1.1 at your option.




FF

IE


이것이 삽질의 원흉입니다.
파란색 도형이 gd 의 기본 함수 입니다.
보시다시피 '선' 에는 안티알리아스가 적용이 되는데 알파채널계산이 안되어 허옇게 뜹니다.
그래서 붉은색 도형을 만들다 만 것인데,
php-cairo 를 알게되어 중단했습니다.


출처:http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57691&page=1
Posted by 알 수 없는 사용자
,
플래쉬 스트리밍 서버 RED5 설치기

여기에 리눅스 기반 스트리밍 서버들 몇 가지 소개 된 것이 있던데요.

red5 에 대해서는 언급이 없어 올립니다.

정확한 서버명은 "플래쉬 커뮤니케이션 서버"라 해야 하나?


리눅스에서의 설치 환경은 jdk1.5이상 + 톰캣 + red5 으로 구성.

저는 먼저 윈도우 버젼이 있어 윈도우 xp에 설치해봤습니다.

리눅스에 설치하다가 잘 안될 경우 부족한 내공으로 해결할 자신도 없고.. ㅋ


Red5 윈도우 버젼은 jetty서버가 내장되어 톰캣설치가 불필요.

그래서 jdk1.5 + red5 서버구동 가능.(jdk1.5는 jre1.5 만 설치되면 됨)

http://osflash.org/red5 에서 red5 를 다운 받아 인스톨하면

jre 설치 폴더를 물으면(설치 되어 있을 경우 자동으로 찾아줌)

jre설치경로를 선택하고 설치를 계속해서 끝냄.


http://127.0.0.1:5080/ 로 접속해서 Red5 Test Page 란 페이지가 나오면 설치 성공.

테스트할 스트림 폴더는 Red5\webapps\oflaDemo 에 streams 폴더를 만들고 그 안에

flv로 인코딩 된 동영상을 넣으면 끝(예: test.flv).

그리고 클라이언트는 플래쉬로 flv플레이어를 만든다.

만들때 참고로 ns.connect는 "rtmp://127.0.0.1/oflaDemo" 로

ns.play는 "test.flv"로 하면 된다.

마지막으로 인코딩은 adobe나 red5 에서 제공되는 프로그램을 사용하는 것이 좋네요.

리사나 다른 프로그램은 멈춤현상이 발생하는 경우가 있는 것 같습니다.


그리고 테스트 서버 링크는 http://211.108.234.116:8080/ 인데요

제 컴이 켜져 있을 때만 가능합니다. 플래쉬 스트리밍은 Temporary Internet Files에

캐쉬가 남지 않네요. 그래서 효과가 있을 것 같아 경로도 함 숨겨봤습니다.


관심있는 분들 설치해보시고 결과 좀 알려주세요.

특히 리눅스에서 설치결과^^


화상채팅, 실시간 스트리밍 등등 지원

펌:http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=57695&page=1
Posted by 알 수 없는 사용자
,
http://www.software.or.kr/
이곳 들여다보다 보니 오른쪽 스크롤 배너에 확대 축소 버턴이 있어서 스크립을 들여다 봤떠니..
   
var nowZoom = 100; // 현재비율
document.body.style.zoom = nowZoom + "%";

식으로....

확대 축소를 하고있네요..

100%가 기본사이즈고  축소 확대할때 +10 이나 -10 을 해서 페이지 자체 사이즈를 바꾸고 있네요..


저처럼 모르고 있었던 사람 있을려나 해서....
1원짜리팁입니다.


아래는 실제 스크립트 입니다.


<!-- 화면 확대 축소 시작 IE 전용 --->
<!--
var nowZoom = 100; // 현재비율
var maxZoom = 200; // 최대비율(500으로하면 5배 커진다)
var minZoom = 80; // 최소비율

//화면 키운다.
function zoomIn()
{
    if (nowZoom < maxZoom)
    {
        nowZoom += 10; //25%씩 커진다.
    }
    else
    {
        return;
    }
    document.body.style.zoom = nowZoom + "%";
}


//화면 줄인다.
function zoomOut()
{
    if (nowZoom > minZoom)
    {
        nowZoom -= 10; //25%씩 작아진다.
    }
    else
    {
        return;
    }
    document.body.style.zoom = nowZoom + "%";
}

//화면 원래대로
function zoomDefault()
{
    nowZoom = 100;
    document.body.style.zoom = nowZoom + "%";
}
//-->
<!-- 화면 확대 축소 끝 --->


IE7에선 Ctrl 누른 상태에서 휠조정으로 가능합니다.
Posted by 알 수 없는 사용자
,