일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 큐
- 정렬
- 카카오 기출
- 백준
- 프로그래머스
- sort
- 그래프
- DVWA
- 탐욕법
- DFS
- binary search
- programmers
- Brute Force
- Algorithm
- heap
- 알고리즘
- Greedy
- string
- Dynamic Programming
- 힙
- graph
- 동적계획법
- DP
- 코딩테스트
- BFS
- django
- 문자열
- Queue
- 완전탐색
- Code Refactoring
- Today
- Total
목록전체 글 (77)
생각과 고민이 담긴 코드

현재 진행 중인 팀프로젝트에서는 제조원가를 예측하는 웹 플랫폼을 개발하고 있다. 기술 스택은 Django 프레임워크와 html, javascript를 사용하고 있다. 현재 웹페이지 화면은 총 16개 정도의 화면으로 이루어져 있으며 대부분의 화면들은 DB의 데이터들을 보여주는 grid 형식의 화면이다. 또한 장고의 FBV를 사용하여 화면마다 한개의 html 파일 랜더링 해주는 view함수를 배정해주고 있는데 문제는 화면마다 CRUD 기능이 필요하기 때문에 각 화면마다 최소 3개이상의 view 함수와 url 경로가 더 필요하게 되었다. 그 결과 다음과 같은 매우 비효율적인 구조가 되고 말았다. 위와 같이 화면마다 총 4개의 url을 맵핑하게 되었고 그에 따라 view함수도 4개씩 필요하게 되었다. 16개의 ..
문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확..

오늘은 내 코드와 팀원들의 코드를 보면서 중복처리와 관련된 이슈사항을 발견했다. 우리 프로젝트는 아래의 화면과 같이 각 화면에 따라 각기 다른 입력 값들을 사용자가 직접 입력할 수 있는 형태이다. 이처럼 각화면에 따라 입력 속성이 다르기 때문에 중복처리할 속성 또한 다를 수밖에 없었다. 하지만 중복처리 방식에 있어서는 어느정도 통일성이 필요하다고 생각했기 때문에 리뷰를 진행했다. 위 코드는 사업장 화면에서 중복처리를 구현한 코드이다. django의 ORM을 기반으로 하여 DB에 해당 속성에 같은 값이 존재하면 에러 flag와 에러 메시지를 context에 담아서 return 시켜버린다. 같은 방식으로 4개의 모든 입력 필드에 대하여 중복처리가 구현되어 있었는데 모든 입력 필드에 대하여 단하나의 중복도 허..

오늘은 제가 5G, AI 아이디어 공모전을 나가면서 IoT device대한 구현 아이디어를 내기 위해 공부했던 protocol에 대하여 알아보겠습니다. 먼저 왜 이러한 경량 프로토콜이 개발된 것인지 생각해볼 필요가 있습니다. IoT 통신 프로토콜 요구사항 모든 인터넷에 연결된 기기들은 IETF에서 제정한 인터넷 프로토콜 수트를 따라야합니다. 그러나 과거부터 인터넷은 많은 전력과 메모리를 갖는 리소스가 풍부한 기기들을 위주로 연결해왔기 때문에 IoT device와 같이 리소스가 매우 한정적인 기기에는 적합하지 않습니다. 예를 들어, 현재 가장 대중적으로 쓰이고 있는 프로토콜 중 하나인 HTTP 프로토콜은 같은 이유로 IoT device에는 잘 쓰이지 않습니다. 또한 IoT 최종 노드 네트워크는 손실이 많으..

현재 진행 중 인 팀 프로젝트에서는 제조업 관련해서 원가 데이터를 입력받을 수 있는 웹페이지를 개발 중이었다. 기술 스택은 Django 프레임워크와 html, javascript를 사용하였다. 각자 소스코드들의 통일성을 유지하기 위해서 팀원들의 코드를 계속 리뷰 할 필요가 있었다. 팀원들은 각자의 화면을 맡아 개발하고 있었고 그 중 예를 들어 위의 화면에서는 법인정보 데이터를 입력하는 화면인데 각 Row에는 수정, 삭제하는 버튼이 각각 1개씩 존재하였다. {% for i in rsCo %} 프론트에서는 백엔드로 부터 context 변수로 넘겨 받은 rsCo라는 객체 리스트을 for문 돌려서 각각의 객체에 접근하는데 이 객체가 DB에 Row에 해당하게 된다. 따라서 두 버튼에서는 각row의 수정, 삭제기능..