일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Spring Boot
- 디자인 패턴
- github actions
- c#
- git
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- Python
- 프로그래머스 코딩 테스트 연습
- 스코페2021
- 프로그래머스 월간 코드 챌린지
- 클린 코드
- 애드센스
- WPF
- FastAPI
- 프로그래머스 월간 코드 챌린지 시즌1
- heroku
- 파이썬
- 브랜디
- PostgreSQL 설치 시 에러
- pycharm
- Codeforces
- PostgreSQL
- 바이오데이터 엔지니어
- 프로그래머스 코딩테스트 연습
- 프로그래머스 코딩테스트 연습문제
- github
- selenium
- terraform
- Word Cloud
- Firefox
- Today
- Total
목록분류 전체보기 (103)
프로그래밍 연습하기
사실은 이론 카테고리와는 잘 맞지 않습니다. 추후 카테고리를 수정할 예정입니다. 도커는 2013년 파이콘에서 처음 소개되었습니다. 도커를 한마디로 정의하자면 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 기존 VMWare같은 호스트 OS위에 게스트 OS를 가상화하는 방식은 무거워서 실제 운영환경에서 사용하기 힘들었습니다. 도커는 프로세스를 격리하는 방식의 컨테이너를 이용하여 성능 손실이 거의 없는 가벼운 VM을 이용하는 것처럼 사용할 수 있습니다. 그리고 컨테이너 실행에 필요한 파일과 설정값들을 포함하는 이미지라는 개념이 있습니다. 컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값이 컨테이너에 저장됩니다. 이러한 이미지를 활용하여 새로운 서버를 추가하는 과정을 단순화할 수 있습니다. ..
개발자 채용 및 코딩 테스트 플랫폼인 프로그래머스에서 월간 코드 챌린지를 개최합니다. 시즌제로 개최를 할 것으로 보이는데, 다음 시즌이 언제일지는 모르겠네요. 일단 시즌 1은 9월, 10월, 11월에 챌린지를 합니다. 각 월별로 1,2,3 등에게 상금이 주어지고, 세 번의 챌린지 동안 5문제 이상을 푼 사람들을 대상으로 경품을 추첨합니다. 프로그래머스에서는 이번 챌린지를 겸하면서 알고리즘 문제 제작자 채용도 하는 것으로 보입니다. 첫 번째 챌린지는 9월 10일에 이루어졌었습니다. 저는 두 문제밖에 풀지 못해서 아쉬웠습니다. 다음 챌린지 때는 세 문제 이상 풀 수 있었으면 좋겠습니다. 시간 제한도 있고 순위가 실시간으로 제공되다보니 더 흥미롭고 재밌는 코딩 테스트 연습이 된다고 생각합니다. 경품도 주니 좋..
함수의 실행에 어느정도 시간이 걸리는지 확인해야 될 때가 있습니다. 하지만 여러 군데에서 일일이 시작시간과 종료시간을 구하고 그 차를 출력하는 것은 번거롭습니다. 파이썬 데코레이터를 이용하여 시간을 측정하는 예제를 작성해봤습니다. # decorator.py from datetime import datetime def time_measure_decorator(func): def wrapper(*args, **kwargs): start = datetime.now() ret = func(*args, **kwargs) end = datetime.now() print("Time lapsed : ", (end-start).total_seconds(), "seconds") return ret return wrappe..
브랜디에서 코드네임 B라는 코딩 대회를 개최하였습니다. 8.29 (토)에 1차 대회를 진행했구요, 9.5 (토)에 2차 대회를 진행했습니다. 2차 대회는 웹캠과 컴퓨터 화면 공유를 전제로 하여 부정행위를 방지하였습니다. 총 상금이 3억3천이라고는 하지만.. 상금 구성을 살펴보면 그 중 3억원은 입사자들 10명에게 3천만원을 주는 것이고 나머지 3천만원이 대회 상금으로 주어지고 그중 400만원은 포인트로 주어지네요. 채용을 겸한 대회인 것 같습니다. 그래도 브랜디 채용을 원하는 사람들에게는 좋은 기회라고 생각합니다. 그리고 이런 대회가 많이 열리는 것 또한 여러가지로 좋은 영향을 준다는 생각이 드네요. 저도 코딩 테스트를 준비하고 취업을 준비하는 입장에서 참여했었는데요, 문제 난이도가 어땠는지 몇 문제를 ..
docs.python.org/3/library/queue.html queue — A synchronized queue class — Python 3.8.5 documentation queue — A synchronized queue class Source code: Lib/queue.py The queue module implements multi-producer, multi-consumer queues. It is especially useful in threaded programming when information must be exchanged safely between multiple threads. The Queue docs.python.org 파이썬 PriorityQueue(우선순위 큐)를 ..
블로그와 깃허브 커밋을 본격적으로 시작한지 한달 쯤 되었습니다. 깃허브 커밋은 매일 하려고 했는데, 중간에 하루가 비어버렸습니다. 그 날 커밋을 한 줄 알았는데 알고보니 안했었습니다. 그런데 로그아웃을 하고 보면 잔디는 남아있더라구요. 내역을 보면 저장소 생성이라고 뜨는데, 막상 로그인해서 보면 저한텐 안뜹니다. 그래도 커밋을 안한것은 사실이여서 좀 아쉽습니다. 블로그도 매일 글을 쓰려고 노력은 해서 글 갯수는 좀 늘었는데, 아쉬운 점은 막상 실속은 별로 없는 것 같습니다. 이론 정리나 문제 풀이나 좀 어려운 것이나 깊게 한 것이 없어서 그런 것 같습니다. 깃허브에서 그동안 한 것은 스프링 부트 프로젝트, 직접 만든 에브리타임 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