분류 전체보기 164

8.1~8.2 데이터 삭제하기(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 삭제 과정 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청 삭제 요청을 받은 커트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제(기존의 데이터가 있을 경우 실행) 삭제가 완료되면 클라이언트를 결과페이지로 리다이렉트 프로그램 작성 순서(데이터 삭제하기) 1. 상세페이지(show.mustache)로 가서 삭제버튼 및 연결 URL설정 Delete 2. 컨트롤러로 가서 해당 URL(삭제 링크) @GetMapping 어노테이션으로 받기 3. 리파지터리로 링크의 id값을 통해 데이터를 받아와 엔티티에 저장 4. 엔티티 값이 null이 아닐 경우 리파지터리의 .delete()메서드를 통해 엔티티값 삭제 5. 리다이렉트의 휘발성 변수를 사용하기 위해 RedirectAttributes 객체 생..

전화번호 목록 (프로그래머스 / 파이썬 / 해시 / 알고리즘 고득점 Kit)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42577?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방법 문자열 리스트를 정렬하면 문자열의 가장 앞문자를 기준으로 정렬 되고 같을 경우 그 다음 문자를 기준으로 정렬함 이를 이용하여 문자열 리스트를 정렬하면 만약 어떤 번호가 다른 번호의 접두어일 경우 바로 그 다음에 오게 됨 코드 1 2 3 4 5 6 7 8 def solution(phone_book): phone_book.sort() for i in ran..

7.1~7.3 데이터 수정 과정(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 수정 과정 ① 만들고 기존 데이터 불러오기 에서 [Edit]버튼을 클릭 요청받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져옴 컨트롤러는 가져온 데이터를 뷰에서 사용할 수 있도록 모델에 등록 모델에 등록된 데이터를 에서 보여줌 사용자가 내용을 수정할 수 있는 상태가 ②데이터를 수정해 DB에 반영 후 결과를 볼 수 있게 로 리다이렉트하기 폼 데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받기 DTO를 엔티티로 변환 DB에서 기존 데이터를 수정 데이터로 갱신 수정 데이터를 로 리다이렉트 프로그램 작성 순서 1. 세부데이터를 보여주는 뷰페이지(mustache)켜기 2. [Edit]버튼 생성 (누르면 수정페이지로 이동하도록 설정 / "/articles/{{article.id}}/ed..

포켓몬(프로그래머스 / 파이썬 / 해시)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방법 N/2 마리 만큼 가져가는데 최대한 여러 종류를 가져가고 싶은것이기 때문에 포켓몬의 종류가 N/2 보다 많으면 N/2를 반환하면 됨 그 외의 경우에는 포켓몬의 종류만큼 반환하면 됨 몬스터의 종류는 중복을 없애주는 set() 자료형을 이용하면 됨 이때 더 작은 것을 판단하는 방법으로는 min() 함수를 이용함 코드 1 2 def solution(nums):..

완주하지 못한 선수(프로그래머스 / 파이썬 / 해시)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방법 두 배열을 정렬하여 zip으로 묶어 반복문을 돌림 정렬을 한 후이기 때문에 완주하지 못한 사람이 나오는 경우가 아니면 이름이 같아야함 때문에 이름이 다를경우 해당 participant 값을 반환하도록 함 반복문이 끝나도 다른 경우가 나오지 않는다면 participant 의 길이가 1 더 길기 때문에 마지막 사람이 완주하지 못한 것이 되어 마지막사람을 반..

6.1~6.2 링크와 리다이렉트를 이용해 페이지 연결하기(게시판 만들기 / 길벗 코딩 자율학습단)

링크 => 미리 정해놓은 요청을 간편히 전송하는 기능(클릭하면 원하는 주소로 이동) 리다이렉트 => 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 재지시 하는것(a로 가는 페이지를 b로 가도록 만듦) 링크 만드는 방법 컨트롤러에서 반환하는 뷰파일 켜기(mustache) 주소가 들어가기를 원하는 위치에 "화면에 보일 문구" 입력하기 {{>layouts/header}} 제목 내용 Submit Back {{>layouts/footer}}​ 리다이렉트 컨트롤러에서 리다이렉트 할 메서드로 이동 리턴 값을 "return "redirect:URL_주소";" 로 입력하기 @PostMapping("/articles/create") public String createArticle(ArticleFor..

다운캐스팅 (Spring Boot3 / Java / Intellij)

다운캐스팅 방법 1. 메서드 앞에 원하는 반환타입 적어주기 List articleEntityList = (List) articleRepository.findAll(); 2. 변수 타입을 베서드가 반환하는 타입으로 맞추기 Iterable articleEntityList = articleRepository.findAll(); 3. 오버라이딩하기 원하는 반환타입 or 그보다 하위 타입으로 오바라이딩 해야함 업캐스팅의 경우 자동 수행 @Override List findAll();

5.3 데이터 목록 조회하기(게시판 만들기 / 길벗 코딩 자율학습단)

테이터 목록 조회하기(모든 데이터 조회하기) URL(/articles)요청을 받기 위해 컨트롤러에 @GetMapping 어노테이션을 선언하기 메서드 생성하기(public String index()) / 데이터를 뷰페이지로 전달할 매개변수 model 생성 리스트 형의 엔티티 변수(List)를 생성하고 리파지터리에서 .findAll() 메서드를 통해 모든 데이터 받기 .findAll()메서드는 Iterable 타입으로 다운캐스팅이 필요(방법은 다음글에 설명) 다운 캐스팅을 한 후 model에 .addAttribute()메서드를 통해 데이터 등록 뷰페이지(mustache) 반환 뷰페이지 작성(단일 데이터 조회때와 동일) 그 후 프로그램 재시작 후 데이터 입력 & 조회(http://localhost:8080/a..

5.1~5.2 단일 데이터 조회하기(게시판 만들기 / 길벗 코딩 자율학습단)

데이터 조회 과정 사용자가 데이터를 조회해달라고 웹 페이지에서 URL 요청을 보냄 서버의 컨트롤러가 요청을 받아 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달 리파지터리는 정보를 가지고 DB에 데이터 조회를 요청 DB는 해당 대이테를 찾아 이를 엔티티로 변환 반환된 엔티티는 모델을 통해 뷰 템플릿으로 전달 최종적으로 결과 뷰 페이지가 완성되어 사용자의 화면에 출력 단일 데이터 조회하기(실제 과정) URL 요청하기 (/articles/id 로 요청) 컨트롤러는 @GetMapping("/articles/{id})로 URL받기 URL의 id가 포함된 메서드 생성 메서드로 URL의 id를 매개변수로 받기 위해 매개변수 앞에 @PathVariable 어노테이션 붙이기 리파지터리에서 DB에 저장된 데이터..

4.1~4.2 롬복을 활용해 리팩터링하기(게시판 만들기 / 길벗 코딩 자율학습단)

롬복 => 코드를 간소화 해주는 라이브러리 로깅 => 롬복에 탑제된 기능 중 하나로 println보다 향상된 성능으로 유사한 기능을 함/ println + 기록(시간등) 롬복 설치하기 포로젝트 > src > build.gradle에 들어가 dependcies에 아래 두 줄 추가 compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' 2. 편집기에 나타난 코끼리 모양의 새로고침 아이콘 클릭(설치시작) 3. 설치가 끝나면 help > Find Action.. > plugins 클릭 후 lombok 검색 Install 리팩터링 @AllArgsConstructor 어노테이션 => 자동으로 필드 안의 모든 매개변수를..