본문 바로가기

개념 공부25

[SQL / 프로그래머스] JOIN 문제 모음 https://school.programmers.co.kr/learn/courses/30/lessons/131117 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 우선 5월에 만들어진 상품들의 총 주문 개수를 구해야한다고 생각했습니다.해당 쿼리는 아래와 같습니다.SELECT PRODUCT_ID, SUM(AMOUNT)FROM FOOD_ORDERWHERE PRODUCE_DATE >= '2022-05-01' AND PRODUCE_DATE  그리고 저 AMOUNT의 합과 가격을 곱해주면 된다고 생각해서 JOIN을 활용해서 정답쿼리를 썼습니다. SELECT FP.PRODUCT_ID AS PRODUCT_ID, F.. 2024. 11. 7.
[SQL / 프로그래머스] 그룹별 조건에 맞는 식당 목록 출력하기 https://school.programmers.co.kr/learn/courses/30/lessons/131124 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr WHERE 절에 서브 쿼리를 써서 해결했습니다.  1. 가장 리뷰를 많이 쓴 회원 아이디 찾기REST_REVIEW 테이블에서 가장 리뷰를 많이 작성한 회원을 찾아줍니다.해당 쿼리는 아래와 같습니다. SELECT MEMBER_IDFROM REST_REVIEWGROUP BY MEMBER_IDORDER BY COUNT(*) DESC LIMIT 1;  2. 가장 리뷰를 많이 쓴 회원의 리뷰 내용 출력위에서.. 2024. 10. 18.
객체 지향 설계 5원칙 - SOLID SRP - 단일 책임 원칙⭐️ 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다즉 하나의 클래스는 하나의 역할만 해야한다는 의미이다.하나의 클래스가 너무 많은 역할을 맡고 있을 때 객체지향에서는 '나쁜 냄새가 나는 코드'라고 부른다.SRP가 잘 지켜지지 않은 설계의 예시를 보자.✏️ EX 1)사람 클래스가 있고, 이 사람 클래스에 의존하는 여러가지 클래스들(애인, 부모님, 회사 등)이 존재한다고 하자.이 사람 클래스 안에 여러 가지 역할에 해당하는 메소드를 모두 넣는 경우가 SRP가 잘 지켜지지 않은 설계이다. 하나의 클래스가 여러 역할을 하고 있기 때문이다.아래와 같이 역할을 나누어 클래스를 여러 개로 분리한다면 SRP를 잘 지킨 더 좋은 설계가 된다.✏️ EX 2)더 예시를 들어보자. 만약 .. 2024. 10. 14.
[DBMS] 트랜잭션(Transaction)이란 트랜잭션쪼갤 수 있는 업무의 최소 단위데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위상태를 변화시킨다는 것은 SQL 쿼리문을 통해 DB에 접근하는 것이다.위에 써놓은 것을 좀더 풀어서 설명하면 작업단위란 쪼갤 수 있는 업무의 최소 단위를 의미하는데, 그 작업 단위는 여러 개의 SQL 쿼리문을 사람이 정하는 기준에 따라 묶어놓은 것이다.📌 Ex)게시판을 구현한다고 가정하자.게시판에 글을 올리고, 다시 게시판 메인으로 돌아오면 내가 올린 글을 볼 수 있는 기능을 구현하고 싶다.그러면 이 작업을 위해서 필요한 SQL 작업은 아래와 같다.올리기 버튼을 누른다. : INSERT문을 사용해서 사용자가 올리려고 하는 게시글 데이터를 DB에 저장한다.게시판 새로 구성: SELECT 문으로 최신 정보를 유지한.. 2024. 9. 2.
[Java] Reflection을 활용해서 검증 어노테이션 구현하기 ReflectionReflection이란?컴파일 타임이 아닌 런타임에 클래스, 메서드, 필드 등의 정보를 조회하고 검사할 수 있도록 하는 자바의 기Reflection의 주요 기능클래스 정보(클래스 이름, 메서드, 필드 등)을 런타임에 알 수 있음런타임에 해당 클래스의 객체 생성 가능런타임에 메서드 호출하능런타임에 필드에 접근하고 수정할 수 있음예를 들어 JPA 기술을 쓰면, DB에서 값을 찾아오고 그 값으로 객체를 만들어 주는데 이때 리플렉션으로 private 변수에 직접 접근하여 값을 할당합니다.객체와 Json 사이의 직렬화/역직렬화를 도와주는 Jackson 라이브러리도 리플렉션이라는 기능을 활용합니다.Reflection 활용 예제아래와 같은 Calculator 클래스를 만들고, 리플렉션의 여러 기능들.. 2024. 6. 20.
[JPA 개념] 연관 관계 매핑 단방향 연관 관계 매핑MEMBER라는 테이블과 TEAM이라는 테이블이 있다고 하겠습니다.한 멤버는 한 팀에 속할 수 있고, 한 팀에는 여러명의 멤버가 속해있습니다.따라서 MEMBER와 TEAM은 N:1 관계입니다.Member.javaimport jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.Id;import lombok.Getter;import lombok.Setter;@Getter@Setter@Entitypublic class Member { @Id @GeneratedValue @Column(name = "MEMB.. 2024. 6. 6.