본문 바로가기

내가 배운 것들41

프로그래머스 67257 : 수식 최대화 수식 최대화 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 원래 이젠 티스토리에 알고리즘 관련된 글은 안 쓰려고 했는데 이건 어렵고 새로 써 본 기능이 있어서 적어놔야 할 것 같다.. 핵심 기능 : itertools.permutations 이 기능은, 순열을 돌아주는 기능이다. 굳이 factorial(n)만큼 경우의 수를 돌릴 필요가 없게 해 주는 것이다. ex) permutations(['+', '-', '*'], 3) -> (+,-,*) (+,*,-) (-,+,*) (-,*,+) (*,+,-) (*,-.. 2021. 12. 19.
Youtube Data API v3의 검색 기능 매개변수들 Youtube Data API v3 항해99 과정을 하면서 첫 번째 주에 했던 미니 프로젝트가 검색어를 기반으로 한 유튜브 영상 랜덤 재생 사이트 "YoutubeRandomPlayList" 였다. 첫 주 아무것도 모를 때 시행했던 프로젝트라 어떻게든 마무리를 하고 싶은 마음이 있었는데, 여유가 남아 이번 기회에 조금 신경을 써보려고 한다. 그래서 먼저 내가 사용하게 될 검색 요청 기능의 데이터 요소들을 적어보려고 한다. 내 프로젝트의 주석에 적어놓은 내용이다. * Youtube Data Api v3 구조 설명 * -----필수요소----- * part : id(영상의 id값) 또는 snippet(영상의 상세정보) 중 무엇을 받아올지 결정(YoutubeSearch.youtubeSearch 메소드 안에 설정.. 2021. 12. 17.
[SpringBoot] Swagger v2를 Jwt 인증 환경에서 사용할 수 있도록 구성하기 Swagger v2 이 글을 보는 사람은 Swagger가 뭔지는 아는데 어떻게 Jwt를 사용하는 환경에 어떻게 적용하는 것인지 궁금해서 들어오는 것이라고 생각한다. 그래서 거두절미하고 코드스니펫부터 제공하겠다. 코드를 보기 이전에 가장 먼저 확인해야 할 부분! Swagger v2는 SpringBoot 최신버전에서 제대로 작동 안 할 수도 있기 때문에, build.gradle에서 springboot 버전을 2.5.3 으로 맞춰줘야 한다. plugins { id 'org.springframework.boot' version '2.5.3' } 이제 진짜 코드다. @Configuration @EnableSwagger2 public class SwaggerConfiguration { @Bean public Doc.. 2021. 12. 11.
변수는 반복문 안에서 선언하는게 좋을까? 밖에서 하는게 좋을까? 반복문 내에서의 변수 선언 요즘 들어 호기심만 늘고 있다. 초보자는 원래 다 이런 것 같다. 코드를 쓰다보면 의문이 드는 구간이 있다. 그게 뭐냐면 바로 '반복문에서는 변수를 어떻게 선언해줘야할까'에 대한 것이었다. 말로 설명하자면 복잡하니 바로 예문으로 들어가겠다. while(true){ Object obj = new Object("반복문 안에서 선언했어요"); } Object obj; while(true){ obj = new Object("반복문 안에서 선언했어요"); } 이런 상황 한 번씩은 겪어봤을 것이다. 그러면 여기에서 우리는 어떻게 코드를 선언해주는게 좋을까? 나의 생각을 말하자면, 전자가 낫다고 생각한다. 내 생각엔. 후자의 코드로 적용을 하는 사람들의 경우, String str이 계속해서.. 2021. 12. 10.
[SpringBoot] JPA를 이용해 랜덤한 하나의 레코드만 가져오려면 어떻게 해야할까? 랜덤 레코드 가져오기 고민이 많았던 부분이다. 미니프로젝트 진행 중 테이블 전체 중 하나의 랜덤 column만 가져와야하는 요구사항이 있어서 어떻게 가져와야할지 생각을 많이 했다. 요구사항은 다음과 같았다. 1. 랜덤한 게시글 1개를 사용자에게 보내준다. 2. 이렇게 보고 난 글은 랜덤조회 방법으로 다시는 볼 수 없다. 사실 내가 만든 요구사항이었다. 되는지 안 되는지도 모르고 막 질러놨더니 그 업보가 나에게 돌아왔다. 사람은 말을 아끼고 살아야 한다. 하지만 내뱉은 말은 주워담을 수 없는 법. 그래서 했다. 처음에 생각했던 방법은 다음과 같았다. 1. 이미 읽은 게시글을 제외한 게시글을 대상으로 findAll() 한다. 2. 1.의 결과물 중 랜덤한 하나의 레코드만 가져온다. 3. 그 게시글을 읽음 처.. 2021. 12. 9.
DB에서 쓰는 관계(Relation)가 뭘까? 관계(Relation) 관계형 데이터베이스(RDB)를 처음 접하는 사람들이 가장 먼저 만나게 되는 장벽이 바로 관계다. 자세한 예시를 들어도 이해하기 쉽지 않다. 직접 써보면서 깨닫기 전까지는. 관계는 데이터베이스에서 컬럼의 비어있는 데이터 공간을 최소화하기 위한 수단이다. 무슨 말이지 감이 잘 안 올 수도 있다. 그래서 먼저 관계가 없으면 어떤 사태가 일어나는지를 음식점의 음식으로 예를 들어보자. 매장명 전화번호 위치 최소금액 배달비 음식1 음식2 음식3 ... 쉑쉑버거 xxx-xxxx 종로구 12,000 2,000 그냥버거 치즈버거 더블패티 자담치킨 xxx-xxxx 강남구 13,000 1,000 후라이드 양념치킨 null 짜장면맛집 xxx-xxxx 강서구 7,000 4,000 짜장면 null null.. 2021. 12. 3.