목록분류 전체보기 (718)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/152996# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 Map의 Key는 몸무게, Value는 그 몸무게를 가진 사람의 수이다. weights를 돌며 2:3, 2:4, 3:4 비율이 동일한 값을 찾는다. 그 값(몸무게)을 가진 수만큼 answer에 더한다. 몸무게가 1:1로 동일한 경우가 존재하므로 이 경우도 고려한다. 1:1로 동일한 몸무게 수가 N이라면 N(N-1)/2 경우의 수를 가질 수 있다. 2자리라면 한자리는 N명중 한명, 남..
먼저 코드를 한번 읽어보자. 간단히 미리 설명하자면 버튼 클릭 이벤트 등록시 등록 당시의 sequence의 값을 이용해 deleteButtonAndPatch 함수를 수행하길 원한다. let sequence = 0; function example() { sequence++; let btn = document.createElement('button'); btn.addEventListener('click', () => { deleteButtonAndPatch(sequence); }) } function deleteButtonAndPatch(idx) { console.log(idx); } 버튼 태그인 btn에 클릭 이벤트를 등록했다. 클릭시 이벤트 등록 당시의 sequence 값을 deleteButtonAndP..
input 태그의 type 속성 값을 date로하면 날짜를 입력 받는 양식을 제공 받을 수 있다. 기간 설정 완료 Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDateTime' 서버에서 @RequestParam LocalDateTime으로 받으려고하면 타입 에러가 발생한다. input 태그의 date는 폼 전송시 String으로 날라온다. 아래와 같이 한번 수정해서 받아온 파라미터를 출력해보자. @PostMapping("/schedule") public String makeSchedule(@RequestParam String startDate, @RequestParam String endDate) {..
풀이 방법 철수 카드들의 최대 공약수를 구한다. 영희 카드들의 최대 공약수를 구한다. 철수의 최대 공약수로 영희의 카드들을 하나도 나눌 수 없는지 확인한다. 확인 결과를 bool A에 저장 영희의 최대 공약수로 철수 카드들을 하나도 나눌 수 없는지 확인한다. 확인 결과를 bool B에 저장 A가 true 라면, 즉. 철수의 최대 공약수로 영희의 카드들을 나눌 수 없다면 answer의 값을 철수의 최대 공약수로 갱신 B가 true 라면, 즉. 영희의 최대 공약수로 철수의 카드들을 나눌 수 없다면 영희의 최대 공약수가 answer의 값보다 크다면 answer를 영희의 최대 공약수로 갱신 풀이 코드 #include #include #include #include using namespace std; int g..
스프링 인터셉터 스프링 인터셉터 흐름 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기에, 디스패처 서블릿 이후에 등장한다. 인터셉터 체인으로 인터셉터 다음에 인터셉터를 축 스프링 인터셉터 제한 1. 로그인 사용자 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 2. 비 로그인 사용자 HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터(적절하지 않은 요청이라 판단, 컨트롤러 호출 X) 스프링 인터셉터 인터페이스 public interface HandlerInterceptor { default boolean preHandle(HttpServletRequest re..
다양한 소셜 플랫폼을 통해 로그인하는 회원을 어떻게 저장하면 좋을까? 소셜 로그인 방법이 카카오, 네이버, 구글 등으로 다양하고 서비스 자체 회원가입 방법이 존재할 수 있다. 이 상황을 고려하여 DB를 간단히 설계해봤다. Member 테이블 CREATE TABLE MEMBER ( id bigint AUTO_INCREMENT, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, sns_identifier VARCHAR(255), member_type VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); sns_identifier : 소셜 로그인 플랫홈에서 제공하는 고유한 키를 저장 member_type : 일반 회원, 카카오, 네이버..
static/js/ 경로에 kakaoButton.js 파일을 작성했다. 위의 js 파일을 html에 연결하여 사용하기 위해 아래의 코드를 작성했다. 그런데 404에러가 발생한다. 404 Not Found는 서버에 제공하지 않는 URL을 탐색했을 경우 발생하는 에러이다. 즉, 요청한 페이지나 데이터가 없을 경우인것이다. 인텔리제이에서 경로에 파일이 존재하기에 이렇게 파일 목록을 보여주는데 왜 못 찾는걸까.. 위의 경로도 찾질 못한다. 해결 방법 스프링 부트는 기본적으로 /src/main/resources/static에 위치한 JS, CSS 등의 정적 파일의 경로를 /로 설정된다. 즉, "../static/js/kakaoButton.js" => /js/kakaoButton.js 올바른 경로
application.properties client_id = abc123 application.properties에 키와 값을 정의한다. Java 필드 import org.springframework.beans.factory.annotation.Value; @Controller public class KakaoUser { @Value("${client_id}") private String client_id; } @Value 어노테이션을 사용하여 application.properties에 정의한 값을 불러 필드에 주입할 수 있다.