1월, 2020의 게시물 표시

2021년 목표설정

이미지
기본적으로 작년에 달성하지 못한 것들을 하려고 생각중인데..코로나가 언제까지 이어질지, 한국이나 북해도는 갈 수 있을지..자격증은 응시 가능할지..여러가지가 불확실하다. 2021년은 무엇보다 정신적인 부분과 경제적인 부분에 중점을 두고 조금 더 치열하게 지내보고 싶다. 일본나이로도 30대 마지막 해, 이제 불혹에 접어드는 나이..복잡하지만 심플하게. 육체적목표 : 트라이에슬론 스탠다드 도전하기 정신적 : 자격증2개 도전 + 자체개발 서비스 론칭 가족적 : 가정의 평화를 유지하기 경제적 : 외식과 유흥비를 줄이고 부수입을 늘려서 결과적으로 저축하기 사회적 : 목표세미나를 포함해서 민단과 개인인맥의 활성화와 교류를 촉진하기

[실습] NodeJS + ExpressJS 로 Landing page랑 CRUD 기능 구현하기

이미지
뭘 어찌 공부할지 몰라서 찾아봤더니 우선 만들고 보라더라. 근데 뭘 만들지?? 어떻게 만들지?? 를 모르는데 만들라고 하면 그게 되나 ㅋㅋ 그렇다고 기존처럼 하나하나 개념공부 하고 예제소스 치는 건 아무 도움이 안되니까.. 흔히 말하는 클론코딩을 많이 해 보기로 했다. NodeJS를 비롯해서 자바스크립트 관련 기술을 익히고 싶어서 우선 따라한 것이 이 동영상이다..2시간 30분 짜리인데 거의 12시간 걸린듯..ㅡㅡㅋ (맥과 윈도우가 다름, 그 외에는 거의 에러처리...ㅠㅠ) 참조 :  Learning Expressjs 소스코드 :  https://github.com/buzz-software/expressjs-mvp-landing-page 동영상 :  Express.js & Node.js Course for Beginners - Full Tutorial 내용이 꽤나 많아서 다 정리하려면 시간이 너무 걸리니까..걍 몇 가지만 간단하게 정리함. 기본 설치:Visual Studio Code + Git + Prettier 설치함 Visual Studio Code 는 최신버전으로 업데이트 Git 는 꽤나 삽질을 많이 했음..프로젝트 디렉토리를 만든 후 PowerShell에서 원격리포지토리 설정을 해 주면 자동으로 연결. 참조 : Visual Studio Code에서 git 설정하기 Prettier는 자동으로 소스코드를 정리해주는 플러그인. 아직 잘 활용은 못하지만 어찌되던 써 봤다. 참조 : Visual Studio Code에서 Prettier 설치하기 NodeJS 설치 - 윈도우 기반이라 공식사이트에서 다운로드 후 설치 참조 : NodeJS 공식 사이트 에러 : HttprequestInvailated 관련 에러가 남 -> 최신버전 설치 Express 설치 - NodeJS 관련 프레임워크, 왠만한 플러그인이나 프레임워크 다 들어있더라..설치는 npm 으로 했음. 참조 : ExpressJS 공식...

2020년 목표설정

이미지
올해도 화이팅하자. 중요한 건 지속적으로 수행하는 것. 습관을 만들기 위한 노력을 하는 것과 그것을 보이게끔, 평가할 수 있게끔 하자. 습관과 목표 관리하는 앱도 써 보고 일본어판으로 직접 만들어보자. (클론앱?) 여름에 한 번 중간평가를 하고 그 때 1박 세미나 계획해보자!! ㅋㅋ

[C#] 사상체질 진단 애플리케이션을 만들어봤음 ㅋㅋ

이미지
워낙 프로그래밍 센스가 없어서...ㅠㅠ 연습 겸 취미 겸 해서 만들어 봄. 작년 12월 초부터 올해 1월 9일까지 개발기간 약 1달..물론 주말은 쉬면서 짬짬이 만듦. 캡쳐화면 중심으로 올리고 소스코드는 나중에 Git에 올려보자. 개발하면서 배운 것, 곤란했던 것, 팁 등은 별도로 포스트에 정리해뒀음. 로그인 화면. 항상 웹 개발만 하다 보니까 로컬 앱에서는 로그인을 어찌 구현해야 하나 막막했음..세션도 없고 페이지별로 따로 관리해야 하고 우짜나..싶었는데 결국 수동으로 간단한 로그인 기능을 만들었다. 나름 관리자 모드와 이용자 모드로 나누어서 (이것도 귀찮아서 꼼수를 썼지만..ㅋ) 접근이 가능하며, 관리자 모드는 이용자 및 각종 정보를 관리하는 기능을 제공하고 이용자 모드는 각 이용자별로 체질진단이 가능하도록 했다. 이것이 관리자 화면. 상단에 메뉴를 배치하고 메뉴별로 윈도우 폼을 띄워서 CRUD 기능을 제공한다. 관리자 모드에서 운동정보 관리 화면. 정보의 추가 및 수정과 삭제가 가능하다. 나름 테이블 조인 및 셀렉트박스 표시가 어려웠다는...ㅎㅎ 요것이 메인화면. 체질정보 및 체질 그래프, 추천음식이나 운동, 상품 정보가 표시된다. 밑에 있는 추천 컨텐츠 정보들은 랜덤으로 표시된다. 내 체질은 열 체질임 ㅋㅋ 체질진단 질문표. 인터넷에서 긁어다가 나름 정리해서 만든 것임. ㅋㅋㅋㅋ 체질진단 문제 10개를 대답하면 진단결과에 따라서 정보를 표시한다. 나름 정보를 PDF로 출력할 수 있게 했다. PDF를 출력하면 텍스트박스에 있는 내용이 문서화 된다. 인쇄하시던가~ ㅋㅋㅋ 마지막으로 탭을 사용해서 여러가지 컨텐츠를 제공한다. 체질별 좋은 음식, 나쁜 음식, 추천 운동 및 상품(한국전통차를 넣어봤음) 이 리스트로 표시된다. <총평> 제대로 프로젝트 형식으로 뭔가 만들어 본 것이 거의 처음 아닌가?? 싶다. 옛날에야 웹페이즈 같은 거 많이 만들었는데..내가 프로그래밍을 잘 못하...

[C#] PDF 출력하기 with PDFSharp

C#에서 PDF를 출력하는 방법은 여러가지가 있는 듯 하다. 걍 바로 PDF를 생성하는 방법 (설정?? 포맷을 지정하는 등 귀찮음)과, md(마크언어)를 사용해서 HTML로 변환 후, 그걸 출력하는 방법 (마크언어를 알면 포맷지정이나 디자인 필요없음) 등등이 있는 듯 하다. 나는 가장 많이 쓰인다는 PDFSharp 라이브러리를 사용해봤다. Nuget에서 PDFSharp 라고 검색해서 인스톨 하면 바로 사용이 가능함. 문제는, 일본어...ㅠㅠ 일본어 폰트가 없거나 설정을 해 주지 않으면 개행문자가 깨져버려서 제대로 출력이 안됨. 기본적으로 사용되는 일본어폰트도 쉽게 깨지므로 번거롭지만 폰트를 프로젝트에 추가한 후, 프로퍼티에서 폰트를 프로젝트에 포함시킨 후 , PDFSharp 에서 제공하는 GlobalFontSettings.FontResolver 개체를 사용해야 함. (한국어는 안해봐서 모르겠지만 비슷하지 않을까..) 폰트추가 하는 방법 및 글로벌폰트 설정하는 방법은 아래 문서를 참조했음. <참조>  C#で日本語をPDFに出力する(PDFSharpを利用) using   System ; // 필요한 라이브러리 추가 using   PdfSharp ; using   PdfSharp . Drawing ; using   PdfSharp . Pdf ; using   PdfSharp . Pdf . IO ; using   PdfSharp . Drawing . Layout ; using   PdfSharp . Fonts ; namespace   FourTypesApp {      public   partial   class   typeinfo_uc_form  :  UserControl     ...

[C#] 유저컨트롤을 사용하는 방법 정리

이미지
웹페이지 디자인과 비슷한 느낌으로 메인페이지가 있고 왼쪽의 메뉴를 클릭하면 오른쪽의 페이지만 변경되는 형식을 만들고자 오른쪽 페이지를 유저컨트롤로 디자인 해봤다. 중요한 문제가 있는데 곤란했던 것을 몇가지 정리해두면 다음과 같다. 메인에서 사용하는 개체를 유저컨트롤로 전달하지 않으면 에러가 난다.  유저컨트롤은 자동으로 갱신이 되지 않고 Visual 프로퍼티로 true,false를 설정한다. 유저컨트롤을 필요에 따라서 보이거나(show) 숨기거나(hide) 하는 방식이다. 유저컨트롤을 수동으로 갱신하지 않으면 이전vp에 사용한 흔적이 그대로 남는다. 유저컨트롤에서 다른 유저컨트롤을 불러서 표시하고 싶을 때는 Parent(main_form)에 유저컨트롤을 추가해서 표시해야 한다. 유저컨트롤에서 다른 유저컨트롤을 불러온 경우, 기존의 Parent 폼을 한 번 닫아주고 새로 생성하는 것이 좋음. 안 그러면 페이지 구성이 꼬이더라...(더 좋은 방법이??) 예제소스 : main_form.cs (일부) using   System . Windows . Forms ; namespace   FourTypesApp {      public   partial   class   main_form  :  Form     {          // 유저컨트롤 개체를 설정함.          home_uc_form   HomeUcForm  =  new   home_uc_form ();          mypage_...

[C# & LINQ] 랜덤으로 데이터를 한 개 추출하는 방법

별 거 아닌데 엄청 고생함..하고 싶었던 것은 오늘의 추천음식이나 운동을 랜덤으로 하나 표시하는 것이었다. 처음에는 쉽다고 생각했는데 의외로 고생했다. 고생한 이유는 간단한데, 데이터베이스에서 가져온 데이터셋 중 하나를 렌덤으로 추출하고 싶은데 그걸 한 번의 LINQ로 해결하려고 했기 때문이었다. 해결한 방법은 간단한데, 먼저 데이터를 가져와서 리스트나 배열로 만든 후에 랜덤값을 가지고 하나를 뽑으면 된다. 방법이 여러가지가 있었는데 나는 2가지를 해 봤다. 방법 1은 랜덤객체를 생성한 후에 데이터셋 개수를 이용해서 무작위로 한 개를 끄집어냄. 방법 2는 NewGuid를 사용하는 방법이다. 방법 2가 간편하네..얻은 교훈?!  Divide and conquer!! 나누어서 공략하자!! //  food, exercise, goodの中で、良い体質の項目をそれぞれ持ってくる var   foodquery  = ( from   f   in   model . foods                  where   f . goodtypeid  ==  TypeId  &&  f . flag  ==  true  &&  f  !=  null                  orderby   f . id              ...

[C#] 파이나 도넛 차트를 표시하기

이미지
먼저 툴박스에서 차트를 드래그 앤 드롭으로 디자인 한 후.. 속성에서 여러가지 설정을 미리 해 두는 것이 편하다. 여기를 클릭해서 들어가면 여러가지 설정이 가능한데, 사실 코드로도 설정할 수 있음. 편한대로 ㅋㅋ (역시 GUI가 좋긴 하지만 코드로는 수동으로 세부조절 및 표시가 가능) 그래프 타입이나 Series(데이터가 들어감), 타이틀 등 여러가지 설정이 가능. 그리고 ChartArea 설정에서 3D 로 표시가능. 여기서는 Area3DStyle을 true로 설정했음. 하고싶은 건 유저컨트롤이 로딩될 때 객체에 있는 4개의 점수를 파이 그래프로 표시한 후, 가장 큰 값을 가지는 부분을 따로 떼어내서 강조하는 것이다. 다음과 같이 코드를 작성했음. private   void   home_uc_form_Load ( object   sender ,  EventArgs   e ) {      // 그래프 작성 : 홈 유저컨트롤이 로드되면 그래프를 표시함      //  그래프 배경을 투명으로 설정      chart1 . BackColor  =  Color . Transparent ;      chart1 . BackSecondaryColor  =  Color . Transparent ;           //chart1에 값을 대입함, 여기서는 member객체에 각 체질별 점수가 있다고 가정함.    ...

[C#] 탭 사용하는 방법

가장 기본적인 방법인데 탭 컨트롤을 올린 후 디자이너에서 탭을 만든다. 그 다음, 탭을 변경하면 발생하는 이벤트인 SelectedIndexChanged를 설정하고 그 안에 원하는 내용을 코딩하면 된다. 탭 인덱스는 기본 0부터 자동적으로 설정된다. 여기서는 탭을 변경할 때 마다 리스트뷰를 표현하는 함수를 불러오는 간단한 예시를 기록해둔다. private   void   tabControl_SelectedIndexChanged ( object   sender ,  EventArgs   e ) {      switch  ( tabControl . SelectedIndex )     {          case   1 :              // 体質に悪い食品をListViewに表示する              showBadFoodsList ();              break ;          case   2 :              // 体質に良い運動をListViewに表示する           ...

[C#] ListView에 데이터를 표시하는 방법

private   void   showGoodFoodsList ()  {      // 디자이너에서 붙인 패널에 리스트뷰를 올린다.      GoodFoodsPanel . Controls . Add ( ListViewGoodFoods );      // 리스트뷰를 초기화 한 후에 열을 추가한다.      ListViewGoodFoods . Clear ();      ListViewGoodFoods . View  =  View . Details ;      ListViewGoodFoods . Columns . Add ( "食品名" );      ListViewGoodFoods . Columns . Add ( "詳細" );      // LINQ로 데이터를 추출한 후      using  ( var   model  =  new   FourTypesModel ())     {          var   query  =                 ( from   f   in   model . ...