목록분류 전체보기 (718)
쌓고 쌓다
문제가 발생한 상황은 다음과 같다. 회원은 프로필 이미지를 하나만 가질 수 있는 상황이다. Member @Entity @Data public class Member { ... @OneToOne(mappedBy = "member", cascade = {CascadeType.PERSIST, CascadeType.REMOVE}) private MemberImage memberImg; ... } MemberImage @Entity @Data @NoArgsConstructor public class MemberImage { ... @OneToOne @JoinColumn(name = "member_id") private Member member; } @OneToOne으로 회원과 프로필 이미지는 하나만 가지도록 했다..
https://school.programmers.co.kr/learn/courses/30/lessons/72412#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 다음과 같은 지원자가 있다면 언어 직군 경력 소울 푸드 java backend junior pizza 다음과 같이 "-"를 포함한 모든 조합을 구한다. 저렇게 한 조합이 완성된다면 map에 key로 조합과 해당 지원자의 점수를 넣어 관리한다. 모든 지원자들의 정보를 map에 조합으로 다 넣었다면 탐색을 위한 정렬을 map에 존재하는 모든 key에 대해 오름차순으로 정렬해준다. 이..
기존의 회원 프로필 이미지를 DELETE 쿼리를 날려주려고 했으나.. 날아가지 않는다. member.setMemberImg(null)를 작성하기전에는 member에서 MemberImage를 참조하고 있어서 null로도 해주었지만 동작하지 않는다... member의 Name을 변경했지만 UPDATAE 쿼리는 나가지 않는다. member가 dirty checking이 동작하지 않는것인데 영속성 컨텍스트에 존재하지 않는다는 이유인것 같다. member를 다시 초기화하는 과정을 넣었더니. public String updateMember(MemberUpdateRequest memberUpdateRequest, MultipartFile memberImg, Member member) throws DuplicateEx..
https://school.programmers.co.kr/learn/courses/30/lessons/92342#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 라이언이 과녁에 맞출 수 있는 모든 경우의 수를 구해 어피치 과녁과 비교하여 점수를 계산한다. 라이언이 승리하면서 점수차가 클때 answer을 갱신해주자. 젤 점수가 낮은 과녁부터 채워나가기에 라이언이 가장 큰 점수 차이로 우승할 수 있는 방법이 여러 가지 일 경우, 가장 낮은 점수를 더 많이 맞힌 경우를 return 해주세요. 의 조건을 따로 체크해주지 않아도 통과할거라 생각하..
https://school.programmers.co.kr/learn/courses/30/lessons/150368?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 각각의 이모티콘에 모든 할인율을 붙여본다. 할인율에 따른 가입자 수와 판매액을 계산해본다. 가입자를 늘릴 수 있거나 가입자 수는 그대로라도 판매액을 늘릴 수 있다면 답으로 갱신한다. 전체 코드 #include #include using namespace std; void sale(vector users, vector emoticons, int discount[8..
구현하고자하는 기능은 다음과 같다. 1. 지도에 표시할 주위 장소들을 위한 요청 ( 페이징 X ) /locations?latitude=위도&longitude=경도 : 위도 경도로 주위의 정보를 페이징 처리하지 않고 한 페이지에 모두 출력 2. 게시글 목록을 위한 주위 장소들을 위한 요청 ( 정렬, 페이징 O ) /locations?latitude=위도&longitude=경도&search=내용 /locations?latitude=위도&longitude=경도&sort=like /locations?latitude=위도&longitude=경도&search=내용&sort=like 정렬과 검색을 따로 또는 함께 요청이 가능하며 페이징 처리된 응답을 받길 원한다. 이때 page와 size는 기본값으로 설정된다. 3...
MySQL로 좋아요 개수 쿼리를 공부하다가 Count의 인자로 뭘 넘겨주느냐의 차이를 정리하면 좋겠다싶어 정리한다. 먼저 장소(location)과 장소 좋아요(location_like)의 관계는 1:N이며 left join 했을때 결과는 다음과 같다. 왼쪽의 id가 장소의 PK인 id이고, 오른쪽의 id는 좋아요PK인 id이다. 장소 id 1에 좋아요 2개, 장소 id 2에 좋아요 1개, 장소 Id 3, 4에는 좋아요가 없는 상황이다. 이때 GROUP BY로 장소 id로 그룹을 묶고 count(*)를 해보자. 장소 3, 4에 좋아요가 없음에도 불구하고 1이 카운트된다. COUNT(Column)인 Count(location_like.id)를 해보자. ( 좋아요PK를 count ) 좋아요가 없는 장소는 0으..
좋아요나 댓글 개수와 같이 게시글에 포함되는 정보를 이용하여 정렬하고자 할때 게시글 테이블에 개수를 나타내는 컬럼을 추가하여 댓글 삽입도하며 게시글의 좋아요수를 올리는 방식은 쉽게 구현이 가능할 것이다. 그러나 좋아요 개수를 정규화하여 따로 테이블을 빼놓지 않고 비정규화하여 컬럼으로두어 관리한다면 동시성 문제나 불일치 문제가 발생할 수 있다. 그래서 조인을 통해 게시글 좋아요 개수나 정렬등을 구현할 수 있지만 서브쿼리를 사용하고자 한다. Spring Data Jpa만 알았던 나는 이제서야. 복잡한 쿼리 조회는 QueryDSL을 통해 해결이 가능하다는걸 알았다..!! Poster 테이블에는 좋아요 수를 관리하는 컬럼은 없고 좋아요 테이블인 poster_like 테이블과 1:N 관계를 갖는 상황이다. 현재 ..