| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 프로그래머스 월간 코드 챌린지 시즌1
- Codeforces
- 클린 코드
- 스코페2021
- github
- 프로그래머스 코딩 테스트 연습
- Python
- selenium
- PostgreSQL 설치 시 에러
- c#
- pycharm
- PostgreSQL
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 애드센스
- Spring Boot
- 바이오데이터 엔지니어
- 프로그래머스 월간 코드 챌린지
- heroku
- terraform
- 브랜디
- 프로그래머스 코딩테스트 연습
- 파이썬
- WPF
- github actions
- git
- 프로그래머스 코딩테스트 연습문제
- 디자인 패턴
- Word Cloud
- Firefox
- FastAPI
- Today
- Total
목록2020/08 (10)
프로그래밍 연습하기
블로그와 깃허브 커밋을 본격적으로 시작한지 한달 쯤 되었습니다. 깃허브 커밋은 매일 하려고 했는데, 중간에 하루가 비어버렸습니다. 그 날 커밋을 한 줄 알았는데 알고보니 안했었습니다. 그런데 로그아웃을 하고 보면 잔디는 남아있더라구요. 내역을 보면 저장소 생성이라고 뜨는데, 막상 로그인해서 보면 저한텐 안뜹니다. 그래도 커밋을 안한것은 사실이여서 좀 아쉽습니다. 블로그도 매일 글을 쓰려고 노력은 해서 글 갯수는 좀 늘었는데, 아쉬운 점은 막상 실속은 별로 없는 것 같습니다. 이론 정리나 문제 풀이나 좀 어려운 것이나 깊게 한 것이 없어서 그런 것 같습니다. 깃허브에서 그동안 한 것은 스프링 부트 프로젝트, 직접 만든 에브리타임 api 리팩토링, 그것을 이용한 워드 클라우드, C# WPF을 이용한 간단한 ..
싱글턴 패턴이란 해당 클래스의 인스턴스가 하나만 만들어지고, 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. 프로그램이 시작시에 생성되게 하지 않고 필요한 시기에 생성할 수도 있습니다. 싱글턴 패턴을 만들 때, private static으로 인스턴스를 저장합니다. 그리고 getInstance()를 구현하여 그 인스턴스가 있다면 그것을 반환하고, 없다면 새로 생성합니다. 이 과정이 멀티스레딩 상황에서 구현된다면, 자칫 인스턴스가 여러개 생성될 수 있습니다. getInstance()에 synchronize 키워드를 사용함으로써 이 문제를 해결할 수 있습니다. 하지만 속도 저하 등의 문제가 있습니다. 이런 문제에 대응하는 방법이 세 가지 있습니다. 그냥 Synchronize 키워드를 사용합니..
new를 사용하게 되면 구상 클래스의 인스턴스를 만들게 됩니다. 구상 클래스를 많이 사용하게 되면 구상 클래스를 추가할 때 마다 코드를 고쳐야 해서 많은 문제가 생기게 됩니다. 이런 경우를 변화에 닫혀있다라고 하고, OCP(Open/Closed Principle)을 어기게 됩니다. 따라서 객체를 생성하는 부분을 팩토리라고 이름 붙인 클래스로 따로 분리하게 됩니다. 하지만 이러한 Simple Factory는 디자인 패턴이라고 할 수는 없습니다. 단지 클라이언트와 구상 클래스를 분리하기 위한 간단한 기법으로 활용될 수 있습니다. 추상 클래스를 만들어 객체를 생성하는 메소드를 추상 메소드로 선언해둡니다. 여기서 나온 서브클래스들이 객체를 생성하는 추상 메소드를 필요에 맞게 구현하게 됩니다. 이것이 팩토리 메소..
C#을 다루기 위해 Visual Studio를 쓰는데, 프로젝트 업로드 하는것을 미루다가 오늘에서야 하게 되었습니다. 프로젝트만 비주얼 스튜디오에서 만든 상태여서 기존 프로젝트를 업로드 하는 방법을 찾았습니다. 아래 링크에서 친절하게 사진까지 첨부하여 설명해줘서 쉽게 따라할 수 있었습니다. https://github.com/github/VisualStudio/blob/master/docs/using/publishing-an-existing-project-to-github.md github/VisualStudio GitHub Extension for Visual Studio. Contribute to github/VisualStudio development by creating an account on G..
파일 이름으로 들어가면 안되는 문자들이 있습니다. 그래서 파일을 저장할때 그런 문자들에 대한 처리를 해줘야하는데요. 처음에는 Contains로 문자들을 검사하려고 했는데, 생각해보니까 금지되야하는 문자가 한두개가 아니고 그 종류도 정확하게 몰라서 다른 방법을 찾아보기로 하였습니다. https://stackoverflow.com/questions/620605/how-to-make-a-valid-windows-filename-from-an-arbitrary-string
오늘 깃허브를 확인하니까 제가 예전에 올려뒀던 것에 누군가 스타를 주었습니다. 처음으로 받아본 스타입니다. 어떤 것이 스타를 받았냐면 유튜브 API를 이용해서 재생하는데 플레이리스트를 섞어서 재생하는 자바스크립트 코드입니다. 제가 예전에 블로그를 하면서 블로그에 유튜브를 달아놔서 배경음악으로 쓰자 하는 생각으로 만들었었던 프로젝트입니다. 하나만 틀어두기는 좀 그러니까 플레이리스트를 재생하는 식으로 했었는데 계속 똑같은 곡으로 시작하니까 좀 아닌거 같아서 랜덤으로 재생하는 방법을 계속 고민해서 만들었었던 기억이 납니다. 자바스크립트도 잘 모르고 해당 API 이해도 좀 모자랐었죠. 그것을 한창 해볼때 유튜브 API 다큐먼트도 즐겨찾기에 저장해놓고 계속 들어가서 아직까지도 즐겨찾기에 남아있습니다. 엄청 단순하..
웹 서버에 관한 글을 읽다보면 메시지 큐라는 용어가 자주 나옵니다. 단어 자체의 뜻만 보면 메세지를 담는 큐 같은데, 이것이 왜 자주 등장하고 정확하게 어떤 역할, 의미가 있는지 알아보고자 합니다. 메시지 지향 미들 웨어(Message Oriented Middleware: MOM)는 비동기 메시지를 사용하는 다른 응용 프로그램 사이에서 데이터의 송수신을 의미합니다. 이 MOM을 구현한 시스템을 메시지 큐(Message Queue: MQ)라고 합니다. 메세지 큐는 대용량 배치작업이나 채팅 서비스와 같은 비동기적이고 많은 데이터를 처리하는데 쓰입니다. 메세지 큐의 장점으로는 중간에 메세지 큐를 두기 때문에 분리되어 비동기적으로 운영할 수 있는 것으로 보입니다. 분리하는 것의 또 다른 이점은 통신에 드는 부담..
데코레이터 패턴은 객체에 동적으로 새로운 기능을 추가해줄 수 있게 합니다. 이 방법은 서브클래스를 생성하는 것 보다 유연합니다. 객체를 생성하면서 데코레이터로 감싸주면서 새로운 기능을 추가할 수 있습니다. 컴포넌트를 만들고 그것을 데코레이터를 만듭니다. 데코레이터가 컴포넌트를 상속하는 이유는 형식을 그대로 유지하기 위해서 입니다. 실제 컴포넌트와 데코레이터는 각각을 상속하여 작성하고, 컴포넌트를 데코레이터로 감싸면서 원하는 기능을 추가하게 됩니다. 단점은 클래스들이 많아지면서 쉽게 이해하기 힘들어질 수 있다는 점, 그리고 구성 요소의 특정 형식에 의존하는 경우에는 사용하기 힘듭니다. 코드가 복잡해지는 문제는 팩토리나 빌더 패턴을 통하여 개선할 수 있습니다. 참고 자료 - Head First Design ..
S : 단일 책임 원칙 (Single Responsibility Principle) O : 개방/폐쇄 원칙 (Open/Closed Principle) 확장에는 열려있어야 하지만 코드 변경에 대해서는 닫혀있어야 한다. L : 리스코프 치환 원칙 (Liskov Subsitution Principle) I : 인터페이스 분리 원칙 (Interface Segregation Principle) D : 의존관계 역전 원칙 (Dependency Inversion Principle) 고수준 구성 요소가 저수준 구성요소에 의존하면 안된다. 추상적인 것에 의존해야한다. 을 의미합니다. 앞으로 계속 정리해나갈 예정입니다.
https://stackoverflow.com/questions/1217268/how-to-get-notified-when-a-window-get-focus-in-wpf How to get notified when a window get focus in WPF? I want to get notified when I click a window in WPF (I use the GotFocus event), but it only triggers when I click on a Combobox in the window. What I want is to get notified when the the window or ... stackoverflow.com 스택오버플로를 참고하였습니다. 원래는 GotFocus를 사..