전체 글
[프로그래머스] 튜플
목차 (클릭시 해당 목차로 이동) 문제 설명 셀수있는 수량의 순서있는 열거 또는 어떤 순서를 따르는 요소들의 모음을 튜플(tuple)이라고 합니다. n개의 요소를 가진 튜플을 n-튜플(n-tuple)이라고 하며, 다음과 같이 표현할 수 있습니다. (a1, a2, a3, ..., an) 튜플은 다음과 같은 성질을 가지고 있습니다. 중복된 원소가 있을 수 있습니다. ex : (2, 3, 1, 2) 원소에 정해진 순서가 있으며, 원소의 순서가 다르면 서로 다른 튜플입니다. ex : (1, 2, 3) ≠ (1, 3, 2) 튜플의 원소 개수는 유한합니다. 원소의 개수가 n개이고, 중복되는 원소가 없는 튜플 (a1, a2, a3, ..., an)이 주어질 때(단, a1, a2, ..., an은 자연수), 이는 다음..
[프로그래머스] 불량 사용자
목차 (클릭시 해당 목차로 이동) 문제 설명 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 사용자라는 이름으로 목록을 만들어서 당첨 처리 시 제외하도록 이벤트 당첨자 담당자인 "프로도" 에게 전달하려고 합니다. 이 때 개인정보 보호을 위해 사용자 아이디 중 일부 문자를 '*' 문자로 가려서 전달했습니다. 가리고자 하는 문자 하나에 '*' 문자 하나를 사용하였고 아이디 당 최소 하나 이상의 '*' 문자를 사용하였습니다. "무지"와 "프로도"는 불량 사용자 목록에 매핑된 응모자 아이디를 제재 아이디 라고 부르기로 하였습니다. 예를 들어, 이벤트에 응모한 전체 사용자 아이디 ..
[프로그래머스] 보석 쇼핑
목차 (클릭시 해당 목차로 이동) 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다. 진열대..
[ClassFlix] EP 8. view 페이지 제작과 컨트롤러 연결 - 4
목차 (클릭시 해당 목차로 이동) lecture 정보 페이지 제작 강의소개 설계 왼쪽에는 강의 대표 이미지가 나오고 오른쪽에는 강의정보들이 나온다. 강의정보에는 강의이름, 강의자, 평균별점, 수강평개수, 원래사이트이름(클릭시 이동) 정보가 나온다. 아래에는 강의에 대한 소개를 담은 content를 볼 수 있게 한다. lecture.html bootstrap의 panel을 이용해 정보를 보여준다. thymeleaf를 이용해 컨트롤러에서 받은 lectureDto를 연결한다. 별점이 없을 경우에는 빈(회색) 별점 5개를 보여준다. 강의소개 강의이름 강의자 ★ ★★★★★ n개의 수강평 원래사이트 content lectureController @PathVariable을 이용해 실제 lecture 객체를 찾고, L..
[ClassFlix] EP 7. view 페이지 제작과 컨트롤러 연결 - 3
목차 (클릭시 해당 목차로 이동) MemberForm에서 입력한 데이터 POST로 받아 멤버등록하기 memberForm.html 제작 멤버폼에서는 이름, 나이 성별, 직업을 받아야한다. 이름으로 중복회원을 검사한다 회원가입 이름 Incorrect date 나이 성별 남 여 직업 등록하기 성별은 enum으로 정해진 MALE, FEMALE만 받아야하기 때문에 라디오 체크박스로 구현했다. MemberController @PostMapping("/members/new") 제작 @PostMapping("/members/new") public String create(@Valid MemberForm form, BindingResult result) { if (result.hasErrors()) { return "m..
[ClassFlix] EP 6. view 페이지 제작과 컨트롤러 연결 - 2
목차 (클릭시 해당 목차로 이동) 컨트롤러 연결 홈 화면에서 아래와 같이 구현하려고 한다. 홈화면에서는 강의 목록을 불러오는 쿼리가 필요하다. Controller 컨트롤러에서 LectureService를 호출하고 모든 lectrue List를 받는다. 그리고 view에 lectures List를 뿌려준다. 또한, 홈화면 에서는 lecture의 모든 정보가 필요한 것이 아니므로 view에 의존하는 HomeLectureDto를 만들어서 넘길 것이다. package dongho.classflix.controller; import dongho.classflix.controller.dto.HomeLectureDto; import dongho.classflix.domain.Lecture; import dongho...
[ClassFlix] EP 5. view 페이지 제작과 컨트롤러 연결 - 1
목차 (클릭시 해당 목차로 이동) 이제는 View 계층 설계 및 구현의 차례이다. index.html 제작 설계 body header와 footer는 모든 곳에서 쓰기 때문에 여기서 미리 제작해놓는다. 점보트론으로 CLASS FLIX를 표시한다. NetFlix의 뷰 아이디어를 따왔다. 홈화면에서 category별 인터넷 강의를 바로 볼 수 있도록 한다. 구현 header bodyHeader CLASS FLIX 회원가입 강의등록 footer Copyright © 2021김동호(Dongho Kim) 대표자 소개저는 CLASS FLIX의 대표 김동호입니다. 홍익대학교 컴퓨터공학과에 재학중입니다. SNS 유투브 깃허브 블로그 home (index.html) CLASS FLIX 인강 추천좀 IT 분야 인기 강의 ..
[ClassFlix] EP 4. domain, repository, service 계층별 설계 및 구현
목차 (클릭시 해당 목차로 이동) * 현재 작성한 코드 기준이며 언제든지 코드는 바뀔 수 있습니다. 바뀐 코드는 아래 깃허브 주소에서 보실 수 있습니다. github.com/dongho108/ClassFlix/tree/develop dongho108/ClassFlix 회원등록, 강의정보등록, 후기등록이 가능한 웹사이트를 구축합니다. Contribute to dongho108/ClassFlix development by creating an account on GitHub. github.com 도메인 Member 설계 Long id @Id, @GeneratedValue, @Column String username 필수 o int age 필수 o Gender gender 필수 o String career 필..
[ClassFlix] EP 3. 도메인 설계와 테이블 생성
목차 (클릭시 해당 목차로 이동) 프로젝트에 필요한 도메인을 설계해본다. 1. 실세계 요구사항 분석 - 먼저 실제 세계에서 어떤 시스템을 구축할 것인지 말로 듣는 것 처럼 시작합니다. "우리는 회원관리, 강의정보등록, 후기작성 웹사이트를 구축할 예정입니다. 웹 사이트에 접속한 클라이언트는 회원등록 (자신의 이름, 나이, 성별, 직업) 을 등록할 수 있습니다. 그리고 강의정보 (강의 이름, 강의자 이름 등)을 등록할 수 있습니다. 또한, 강의를 선택하고 회원을 선택하고 후기를 남길 수 있습니다." 2. 개발을 위한 요구사항 분석 도메인 회원 : 이름, 나이, 성별, 직업 강의 : 강의이름, 강의자이름, 썸네일, 사이트이름, 실제강의URL 후기 : 회원정보, 비밀번호, 별점, 내용, 작성한날짜 요구사항 회원..
warning: CRLF will be replaced by LF in gradlew.bat. 문제해결방법
git add . 시 warning: CRLF will be replaced by LF in gradlew.bat. 문제가 발생한다. 이것은 git에서 발생하는 Whitespace 에러이다. 유닉스시스템에서는 한줄의 끝이 LF 로 이루어지지만, 윈도우에서는 CR,LF (CRLF)로 이루어지기 때문에 git에서 어느것을 선택할지 혼란이 온 것이다. 해답은 core.autocrlf를 켜주어서 git이 자동으로 한 줄의 끝을 변환해주는 기능을 사용하면 왼다. 윈도우 사용자는 git config --global core.autocrlf true 리눅스, 맥 사용자는 git config --global core.autocrlf true input 명령어를 입력하면 된다. 물론 global 설정이 아닌 이 프로젝트..