| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- pycharm
- 클린 코드
- Python
- git
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 프로그래머스 코딩 테스트 연습
- heroku
- 스코페2021
- Codeforces
- selenium
- 애드센스
- Word Cloud
- 바이오데이터 엔지니어
- Spring Boot
- 프로그래머스 코딩테스트 연습문제
- github actions
- 프로그래머스 코딩테스트 연습
- c#
- Firefox
- 브랜디
- github
- WPF
- FastAPI
- 프로그래머스 월간 코드 챌린지
- terraform
- PostgreSQL 설치 시 에러
- PostgreSQL
- 디자인 패턴
- 파이썬
- 프로그래머스 월간 코드 챌린지 시즌1
- Today
- Total
목록2020/07 (32)
프로그래밍 연습하기
https://stackoverflow.com/questions/30063550/how-should-i-pass-data-between-wpf-windows-involving-mainwindow-c How should I pass data between WPF Windows involving `MainWindow` (C#)? I am currently starting a C# project in which I am modelling a simple ATM machine, and will therefore need several screens. I have run into the problem of passing data between screens before when I... stackoverflow...
new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory) 이것을 사용하여 현재 디렉토리를 알 수 있고, 뒤에 원하는 경로를 더 넣을 수 있습니다. WPF에서 사용할 수 있는 방법입니다. 또한 이 경로가 존재하지 않는다면 디렉토리를 만들어 줄 수 있습니다. System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + @"경로_추가"); if (!di.Exists) { di.Create(); }
새로운 창을 만드는 방법입니다. 솔루션 탐색기에서 프로젝트 이름을 우클릭 하면 추가 -> 새 항목 에서 창을 하나 추가해줍니다. 그 후 그 창을 만들어주고, 기존 창에서는 Window newWindow = new newWindow(); newWindow.Show(); 이런식으로 새롭게 만든 창을 띄워줄 수 있습니다.
C# WPF로 간단한 일기장을 만들어 보려고 합니다. 웹에 올리는 것이 아닌 로컬에 저장되는 방식으로 하려고합니다. 원래는 HTML로 그냥 해볼려고 했는데 자바스크립트는 파일 로컬 저장이 번거로워서 GUI를 사용해보기 쉬운 C#으로 진행하기로 하였습니다. 프로젝트를 진행하며 알게 된 것을 정리해보려고 합니다.
초로 표현된 날짜를 연월일로 바꿔야 할 일이 있습니다. 날짜를 초로 표현하는 방식은 Unix Time, Unix Timestamp라고 부르는 것 같습니다. https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%89%EC%8A%A4_%EC%8B%9C%EA%B0%84 유닉스 시간 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 그런데 이 표현 방식은 연월일 표현에 비해 눈에 잘 들어오지 않습니다. 이러한 시간을 파이썬 datetime 모듈을 사용하여 연월일로 바꿀 수 있습니다. 혹은 밀리초(millisecond)로 표현된 경우가 있는데, 1000으로 나누어주면 초로 바꿀 수 있습니다. from datetime import dat..
구매했던 책을 읽기 시작했습니다. 예전에 헤드 퍼스트 시리즈의 책은 내용을 풀어내는 스타일이 별로라고 생각했었는데, 읽다보니 괜찮은 스타일이라고 느꼈습니다. 서양 감성? 이라고 할까요.. 책의 전체적인 스타일은 뭔가 좀 저에겐 어색한 감성이기는 한데 내적으로는 무언가 계속 저에게 생각할 여지를 주는 것과 이야기식으로 내용을 풀어내는 것은 괜찮다고 느꼈습니다. 디자인 패턴도 열심히 보고 정리해봐야겠습니다.
옵저버 패턴은 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다 의존성을 정의합니다. 옵저버들을 관리하는 Subject 인터페이스를 구현하는 클래스를 만들고, Observer 인터페이스를 구현하는 옵저버 클래스들이 있게 됩니다. Subject 인터페이스는 옵저버 등록, 삭제, 알림 메소드가 있고 Observer 인터페이스는 업데이트 메소드가 있습니다. Subject 인터페이스에서 알림 메소드 안에서 Observer 인터페이스의 업데이트 메소드를 사용해서 내용을 갱신할 수 있습니다. 옵저버 패턴은 자바에서 java.util.Observable 을 통해 사용할 수도 있습니다. 하지만 이는 클래스를 상속받아서 구현해야되기 때문에 재사용성에 제약..
스트래티지 패턴(전략 패턴)이란? 알고리즘군을 정의하고 각각을 캡슐화하여 교환하여 사용할 수 있도록 만듭니다. 행동을 인터페이스로 만들고, 사용할 클래스에서는 인터페이스를 선언해주고 구체적인 행동은 그 인터페이스를 구현한 클래스를 사용해주는 식으로 만듭니다. 전략 패턴을 보면서 스프링 프레임워크의 DI와 비슷하다고 느꼈는데, 자세한 내용은 좀 더 공부해보고 정리하려고 합니다. 참고 자료 - Head First Design Pattern
오늘은 Head First Design Pattern 책을 구매하였습니다. 헤드 퍼스트 시리즈 책 중 한 권을 예전에 도서관에서 잠깐 살펴봤었는데, 책이 내용을 풀어가는 스타일이 뭔가 눈에 안들어오고 마음에 들지 않아서 덮은 기억이 있었습니다. 그럼에도 디자인 패턴 책으로 많이 언급이 되어서, 이번에 한번 읽어보려고 합니다. 또 디자인 패턴 책으로 많이 언급되는 것이 GoF의 디자인 패턴 이라는 책인데, 평을 살펴보니 C++ 과 스몰톡을 사용하고 책이 조금 읽기 불편하다는 평을 봐서 헤드 퍼스트 책을 구매하게 되었습니다.
오늘 클린 코드를 거의 다 읽었습니다. 어떻게 보면 당연한 이야기를 하는 것도 있었고, 알고 있으면서 실천하지 못한 부분도 있었습니다. 그리고 이러한 내용을 잘 적용하려면 많은 경험이 필요하겠다 라고 느꼈습니다. 주요 내용을 간단하게 정리해보자면 주석을 달기보다는 코드에서 의도를 파악하는 것을 강조 변수나 메소드, 클래스의 네이밍이 중요하다. 메소드와 클래스를 쪼개기 이것은 첫번째와도 연관되는데, 다양한 책임이 있다면 이름 짓기가 어렵다. 테스트의 중요성 테스트를 원활하게 작성하려면 기능별로 쪼개는 것이 중요하다. 리팩토링의 중요성 한번에 완벽한 코드를 작성할 수는 없다. 지속적인 리팩토링으로 완성해나가야 함. 못 읽은 부분을 포함하여 나중에 다시 읽어봐야겠습니다. 그리고 디자인 패턴에 대해서도 공부해야..