@Entity public class Account { @Id @GeneratedValue private Long id; private String name; private String street; private String city; private String state; private String zipCode; } 이렇게 Account 라는 객체가 있다고 할 때, street, city, state, zipCode는 서로 관련된 개념이다. 그리고 name 과는 관련이 없는 값들이다. JPA에서는 이를 하나로 묶어서 표현할 수 있다. @Embeddable public class Address { private String street; private String city; private String..
전체 글
안녕하세요. PS풀이, 개발일지 및 일기, 소소한 이야기를 적어가는 윤재 입니다.https://promisingmoon.tistory.com/106 [프로그래머스 자바] 소수 만들기 (Lv. 1) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 promisingmoon.tistory.com 오늘은 코딩테스트로 풀어봤다. 코테 알고리즘 스터디때 해야하는 걸 많이 미뤄뒀서... 이제는 더이상 물러날 곳이 없.다.
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 class Solution { int length = 1000 * 50; boolean[] composites = new boolean[length + 1]; private void setPrimes() { composites[0] = composites[1] = true; for (int i = 2; i
오늘 정규 표현식 질문을 받다가 알게된 놀라운 사실! 만약 예를 들어서 비밀번호를 검증한다고 했을 때, 영소문자 1개 이상, 영대문자 1개 이상, 숫자 1개 이상, 지정된 특수문자 1개 이상 각각을 꼭 포함해야 한다고 가정하자. 그러면 그냥 /^[a-zA-Z0-9@#$%^&+=]{1, 30}$/ 라고만 하면, 이 안에 있는 모든 문자가 들어가도 상관없지만, 영소문자만으로 채워도 통과가 된다. 그래서 소문자, 대문자, 숫자, 특수문자 각각을 모두 포함하는지를 확인할 수 있어야 하는데 그게 앞에 붙은 소괄호이다. (?=.*[a-z]) 를 하나하나 봐보자면, (?= ... ) : 결과에 포함되지 않고, 이 이후에 나오는 표현식을 매칭시킨다. (그러니까 (...) 이후에 나오는, [...] 부분을 매칭을 시킴)..
JPA에는 고아 객체 라는 게 있다. @Entity @Getter @Setter @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "user", cascade = CascadeType.PERSIST) private List foodList = new ArrayList(); public void addFoodList(Food food) { this.foodList.add(food); food.setUser(this); } } @Entity @Getter @Setter @Tab..
B-1조 팀 비전공자인 내가 SSS급 개발자가 된 건에 대하여 팀원 : 김재윤(팀장), 유동근, 장규빈, 황규정 팀원 모두 한번에 의논하여 작성했습니다. Keep TDD 도입하여 진행하였고, Postman으로 값을 넣어서 API를 검증해보기보다 테스트 코드로 간편히 작성하여 테스트해볼 수 있어서 좋았다. Restful 한 API 를 설계해봐서 좋았다. 깃허브 플로우 및 풀리퀘스트로 협업을 진행하고, 풀리퀘 시 깃허브 액션으로 테스트를 자동으로 돌려주어서 좋았다. 주말까지 나와서 새벽까지 공부한다. 이슈 만들기. 근데 이제 잔디 심기를 곁들인 Problem 로그인 기능에 사용되는 Filter들을 자연스럽게 제어하지 못했다. Admin 유저의 관리를 잘하지 못했다. Try Redis를 이용하여 토큰 제어를 ..
문제 인텔리제이에서 properties 파일에 한글을 붙여넣으니 ISO-8859-1에서 지원되지 않는 문자라고 떴다. 해결1 위 에러에서 파일 인코딩 변경 클릭 후, UTF-8 선택 후 기존 문자를 변경 후 적용이었나..? 하면 기존 문자는 유지하면서 바로 변경 가능하다. 근데 지금 할 떄는 안 떠서 .. 나 같은 사람 있으면 2번째 방법으로 하면 된다. 해결2 우선 기존 파일 내용은 전부 복사를 해둔다. 그 다음 설정(맥은 cmd + , 이고 윈도우는 ctrl + shift + s 였나 했을 거다) -> editor -> file encoding 들어가서, 다음과 같이 빨간 박스 안의 목록상자를 UTF-8 로 변경 후 그 밑의 박스를 체크하고 적용 누르면 된다. 그러면 다음과 같이 변할 텐데, 이거를 ..
어제 게시글 목록 조회 API를 작성하던 중 NullPointerException 을 만났다. @GetMapping public ResponseEntity getPosts( Pageable pageable, @RequestParam(name = "query", required = false) String query) { Page postList = postService.getPosts(pageable, query); return ResponseEntity.ok(RootResponse.builder() .data(postList) .build()); } http://localhost:8080/api/posts?page=0&size=2 위 링크로 postman 으로 테스트 하니, { "timestamp": ..
오늘 전체 게시글 목록 조회 API를 구현하다가 리턴 타입이 너무 길어져서 불편해졌다. @GetMapping public ResponseEntity getPosts( Pageable pageable, @RequestParam(name = "query", required = false, defaultValue = "") String query) { Page postList = postService.getPosts(pageable, query); return ResponseEntity.ok(RootResponse.builder() .data(postList) .build()); } 그래서 아래와 같이 리턴타입을 로 바꾸고, 리턴에 제네릭을 없앴다. @GetMapping public ResponseEntity..