전체 글
-
[그리디] 개념 정리Algorithm/개념정리 2022. 2. 7. 19:17
그리디 알고리즘(탐욕법)은 '현재 상황에서 지금 당장 좋은 것만 고르는 방법'을 의미함 일반적인 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구함 그리디 해법은 정당성 분석이 중요함 단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 구할 수 있는지 검함 일반적인 상황에서 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많음 하지만 코딩 테스트에서의 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제됨
-
APITestCase와 APIClient를 활용한 Django Rest Framework 단위 테스트 코드 작성Back-end/Django 2022. 2. 5. 23:44
사이드 프로젝트의 단위 테스트를 작성하며 알게된 내용을 정리하였다. #️⃣ APIClient를 사용해 Request 생성 시 header 추가하기 response = self.client.post( path=url, HTTP_{Header 이름}={값}) 위와 같이 인자로 맨 앞에 HTTP_ 붙여 전달해주면 된다. 참고) Stack Overflow - API Client Custom Header #️⃣ reverse() 사용 시 url path 변수 값 설정하기 # 아래 2개는 동일한 표현임 url = "/account//userInfo" url = reverse(viewname="{django app 이름}:{urlpatterns 등록 시 설정한 name}", args=[self.user_id]) 위와..
-
CheckStyle과 Formatter를 사용한 Java 코드 컨벤션 수정Project/공통 사항 2022. 2. 3. 10:55
IntelliJ의 Plugin인 CheckStyle-IDEA를 사용해 Java 컨벤션을 확인할 수 있다. 참고) https://juneyr.dev/checkstyle Formatter 적용 : cmd + option + L Import 제거 : ctrl + option + O #️⃣ magic number // 수정 전 HttpClient httpClient = HttpClientBuilder.create() .setMaxConnTotal(50) .setMaxConnPerRoute(20) .build(); // 수정 후 public static final int MAX_CONNECTION_TOTAL = 50; public static final int MAX_CONNECTION_PER_ROUTE = 20..
-
프로젝트 코드 리팩토링Project/공통 사항 2022. 2. 1. 00:47
코드 리팩토링을 통해 어디 내놓아도 부끄럽지 않은 코드를 작성하는 것을 목표로 한다! 이번 졸업 프로젝트를 진행하며 코드 작성 후 바로 코드를 리팩토링하는 것의 중요함을 알게 되었다. 단계별 리팩토링을 진행하며 까먹지 않고 계속 실천하기 위해 정리를 해본다. ✔️ 단계별 리팩토링 1️⃣ lint 적용 lint란 프로그래밍 언어에서 권장하는 코딩 스타일 혹은 코딩 컨벤션이다. lint를 어긴다고 해서 에러가 발생하지는 않지만, lint는 팀원들 간의 코딩 스타일을 통일시켜주고, 잠재적인 에러의 가능성을 줄여준다. *Java top-10-java-linters *Python → PEP8을 일반적으로 권장 → pylint를 사용해 더 엄격한 lint 검사 진행 가능 $ pip install pylint $ p..