식품분류별 가장 비싼 식품의 정보 조회하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 식품분류별로 가장 비싼 식품 -- 분류, 가격, 이름 -- 과자, 국, 김치, 식용유만 출력 -- 가격 기준 내림차순 SELECT F.CATEGORY, F.PRICE AS MAX_PRICE, F.PRODUCT_NAME FROM FOOD_PRODUCT F JOIN (SELECT CATEGORY, MAX(PRICE) AS MP FROM FOOD_PRODUCT WHERE CATEGORY IN ('과자', '국', '김치', '식용유') GROUP BY CATEGORY..
가장 비싼 상품 구하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 가장 높은 판매가 MAX SELECT MAX(PRICE) AS MAX_PRICE FROM PRODUCT; 가격이 제일 비싼 식품의 정보 출력하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- SELECT ID, 이름, 코드, 분류, 가격 -- MAX PRICE ORDER BY LIMIT SELECT * FROM FOOD_PRO..
서울에 위치한 식당 목록 출력하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수(ROUND 3) -- 서울에 위치(서울특별시 X) -- 평균점수 기준 내림차순, 즐겨찾기수 기준 내림차순 SELECT RI.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, SCORE FROM REST_INFO RI INNER JOIN (SELECT REST_ID, ROUND(AVG(REVIEW_SCORE),2) AS SCORE FROM REST_REVIEW..
그룹별 조건에 맞는 식당 목록 출력하기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr -- 가장 많이 쓴 리뷰 개수를 쓴 사람의 이름, 리뷰, 날짜 구하기 SELECT M.MEMBER_NAME, R.REVIEW_TEXT, DATE_FORMAT(R.REVIEW_DATE, "%Y-%m-%d") REVIEW_DATE FROM MEMBER_PROFILE M INNER JOIN REST_REVIEW R ON M.MEMBER_ID = R.MEMBER_ID WHERE R.MEMBER_ID IN -- 가장 많이 쓴 리뷰 개수를 쓴 사람 구하기 (SELECT MEMBER..
아래는 실패한 코드들 window.open("about:blank", "_self").close(); opener.open("about:blank", "_self").close(); window.open("about:blank", "_parent").parent.close(); window.open("", "_parent", ""); window.close(); window.top.close(); vue에서 해서 그런 건지, 아무리 해 봐도 먹히지 않았던 와중에 구글링에 성공해서 그 방법을 찾았다 var ret = window.open("about:blank", "_self"); ret.close(); 자기 자신의 페이지를 빈 페이지로 만든 뒤 그 변수를 이용해 닫으면 된다 이것도 URL을 통해 들어갔느..
HttpSession - 로그인 유지 //요청 매핑 애노테이션 적용 메서드에 HttpSession 파라미터 추가 @PostMapping public String form(LoginCommand loginCommand, Errors errors, HttpSession session) { ... } // 항상 HttpSession 추가 // 요청 매핑 애노테이션 적용 메서드에 HttpServletRequest 파라미터를 추가하고 // HttpServletRequest를 이용해서 HttpSession을 구함 @PostMapping public String submit ( LoginCommand loginCommand, Errors errors, HttpServletRequest req) { HttpSessio..
validator(Object target, Errors errors) - 첫 번째 파라미터로 전달받은 객체를 검증하고 오류 결과를 Errors에 담는다 - 검사 대상 객체의 특정 프로퍼티나 상태가 올바른지 검사 - 올바르지 않다면 Errors의 rejectValue() 메서드를 이용해 에러 코드 저장 String name = regReq.getName(); if(name == null || name.trim().isEmpty()) { errors.rejectValue("name", "에러 코드"); } validator(RegisterReqeust regReq, Errors errors) // errors 객체의 getFieldValue("name") 메서드를 실행해서 // 커맨드 객체의 name 프로..
Controller get 방식과 post 방식 @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model, @RequestParam(value = "name", required = false) String name) { model.addAttribute("greeting", "안녕하세요, " + name); return "hello"; } @PostMapping("/hello") public String hello(Model model, @RequestParam(value = "name", required = false) String name) { model.addAttribute("gre..
MVC(Model - View - Controller) Pattern Model - Service, Dao - 애플리케이션 상태의 캡슐화 - 상태 쿼리에 대한 응답 - 애플리케이션의 기능 표현 - 변경을 view에 통지 View - .jsp - 모델을 화면에 시각적으로 표현 - 모델에게 업데이트 요청 - 사용자의 입력을 컨트롤러에 전달 - 컨트롤러가 view를 선택하도록 허용 // servlet-context.xml - redirect view >> view 이름에 "redirect:" 접두어를 붙이면 지정한 페이지로 redirect 됨 >> redirect:/board/list.html?pg=1 >> redirect:http://localhost/board/list.html?pg=1 @Controlle..
깃허브 데스크탑을 일 년 내내 사용했는데 편한 방식으로 정리해 두기로 했다 정석으로 더 잘 쓸 수 있는 방법이 있겠지만 우선 이 정도만 써도 프로젝트를 할 때는 문제가 없다 깃허브 데스크탑 설치 https://desktop.github.com GitHub Desktop Simple collaboration from your desktop desktop.github.com 위 사이트에서 깃허브 데스크탑을 다운로드해 준다 실행하기 다운로드한 뒤 로그인이 완료되면 메인 화면이 뜬다 이곳에서 repository들을 추가할 수 있다 repository 연결하기 repository 주소 복사 repository의 code - clone - HTTPS 부분에서 나오는 주소를 복사한다 https://github.com..