참고 링크https://scoring.tistory.com/entry/JPA-양방향-연관관계와-연관관계의-주인-양방향-매핑-정리⭐ JPA 연관 관계 한방에 정리 (단방향/양방향, 연관 관계의 주인, 일대일, 다대일, 일대다, 다대다)본문 바로가기 JPA에서 가장 중요한 것연관 관계 매핑은 그 때 그 때 찾아보기보다는 비즈니스 로직, 비즈니스 요구사항에 따라 개발자가 더 적절한 관계 설정 방법을 선택해야하는 주제이기 때문에 학습하기 위하여 아래에 정리를 했습니다. 연관 관계 정의 규칙연관 관계를 매핑할 때, 생각해야 할 것은 크게 3가지가 있습니다.방향 : 단방향, 양방향 (객체 참조)연관 관계의 주인 : 양방향일 때, 연관 관계에서 관리 주체다중성 : 다대일(N:1), 일대다(1:N), 일대일(1:..
공부
org.apache.kafka:kafka_2.13와 org.springframework.kafka:spring-kafka 두 가지 의존성은 각각 Apache Kafka와 Spring Kafka 라이브러리를 제공합니다. 이 둘은 서로 다른 목적을 가지고 있으며, 주로 Kafka를 사용할 때 함께 사용되지만, 서로 다른 역할을 수행합니다.org.apache.kafka:kafka_2.13이 의존성은 Apache Kafka 클라이언트를 제공합니다. Kafka 클라이언트는 Kafka 브로커와 상호작용하기 위한 기본적인 라이브러리입니다. 이를 통해 프로듀서와 컨슈머를 직접 구현할 수 있습니다. 2.13 부분은 Scala 버전과 관련이 있으며, Kafka가 Scala로 작성되었기 때문에 필요합니다.주요 기능:Kafk..
dependencywepmysqljpa application.yml spring: jpa: hibernate: ddl-auto: create show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/coupon_example username: root password: 1234 요구사항선착순 100명에게 할인쿠폰 제공하는 이벤트 제공조건1. 선착순 100명에게만 지급되어야 한다.2. 101개 이상이 지급되면 안된다.3. 순간적으로 몰리는 트래픽을 버틸 수 있어야 한다. Coupon Entity@Entitypublic class..
//게시판의 게시글을 삭제하는 메서드 @Transactionalpublic void removeBoard(Long id)throws Exception{ replyDAO.removeAll(id); //삭제할 게시글의 답글 삭제 boardDAO.deleteBoard(id); //게시글 삭제 } 💡 @Transactional 애너테이션메서드 또는 클래스가 트랜잭션 내에서 실행되어야 함을 나타내는 데 사용된다. 💡 트랙잭션?데이터베이스 작업의 원자성을 보장하며, 작업이 성공하면 커밋되고 실패하면 롤백된다. 이렇게 함으로써 데이터 일관성을 유지할 수 있다.동시 접근하는 여러 프로그램 간 격리를 제공한다 이론적으로 데이터베이스 시스템은 각각의 트랜잭션에 대해 원자성(Atomicity), 일관..
UserServiceDockerfile 파일 만들기 DockerfileFROM openjdk:17-ea-jdk-slim#tmp 디렉토리 생성VOLUME /tmp# 복사를 할 때 docker파일이 포함되어 있는 디렉토리나 파일을 복사해야한다.COPY target/user-service-1.0.jar UserService.jar# ENTRYPOINT :이미지가 실행될 때 어떤 커맨드를 가지고 할 것인지# 명령을 입력할 때 공백을 리스트 형태롤 앞에 bracket하고 여러 개 나눠서 입력ENTRYPOINT ["java","-jar","UserService.jar"] 터미널UserService 프로젝트를 인텔리제이에서 하면 컴파일 해준다.하지만 따로 cmd를 켜서 할 경우, 컴파일을 수동으로 해주면 된다.테..
Collections Framework💡Collections vs. Collection- Collections : util 클래스Collections.sort(list); - Collection : 인터페이스 Collections컬렉션을 위한 메서드(static)를 제공💡 유용한 static 메서드를 제공하는 클래스- Object : 객체- Arrays : 배열- Collections : 컬렉션 List* ArrayList연속적인 배열장점 : 구조가 간단하고 데이터를 읽는 데 걸리는 시간이(접근 시간, access time)이 짧다.단점 :- 크기를 변경할 수 없다.(크기를 변경해야 하는 경우 새로운 배열을 생성 후 데이터를 복사해야함.크기 변경을 피하기 위해 충분히 큰 배열을 생성하면..
Iterator :컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것ListIterator : Iterator에 양방향 조회기능 추가(List를 구현한 경우만 사용가능)Enumeration : Iterator의 구버전 컬렉션들의 구조가 다 달라 읽어오는 방법도 다 다르지만, Iterator를 통해 표준화하여 읽어올 수 있게 한다. ex)List를 Set으로 변환하고 나서 읽어올 때, Iterator를 사용하면 읽어오는 코드를 바꾸지 않고 읽어올 수 있다. 메서드설명boolean hashNext()읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false 반환Object next()다음 요소를 읽어온다. next()를 호출하기 전에 hashNext()를 호출해서 읽어올 요소가 있는지 확인..
DS vs. ADTADT(Abstract Data Tpye, 추상 데이터 타입)- 추상화- 데이터 타입을 정의만 하고 실제 구현에 대해선 논의 하지 않는다.- 정의와 구현을 분리하면 사용자는 굳이 어떻게 만들어 지는지를 몰라도 사용하는데 아무런 문제가 없다.- 사용자는 ADT에서 정의된 기능을 이옹 하기만 하면 되고 구현은 개발자가 알아서 하면 된다.- 기능 개선을 위해서 구현 방법이 바뀌어도 정의만 그대로 라면 기존 사용자는 아무런 변경없이 동일하게 이용이 가능하다 이런게 일반적인 추상화의 장점이다. DS(Data Structure, 자료 구조)내부 구현 예시자바에 비유하자면인터페이스 → ADT 클래스 → DS 참고링크https://www.youtube.com/watch?v=QcsQKgXemtA
Array 비슷한 용어 정리Arrays클래스java.util.Arrays 클래스는 배열을 다루기 위한 다양한 정적 메서드를 제공한다.이 클래스는 배열의 정렬, 검색, 비교 및 변환과 관련된 메서드를 포함하고 있다.주요 메서드:sort(): 배열을 정렬binarySearch(): 배열에서 이진 검색을 수행한다.equals(): 두 배열이 동일한지 비교한다.fill(): 배열을 특정 값으로 채운다.asList(): 배열을 List로 변환한다. int[] numbers = {5, 3, 8, 1};Arrays.sort(numbers);System.out.println(Arrays.toString(numbers)); // [1, 3, 5, 8] ArrayList 클래스java.util.ArrayList는 Lis..
API(Application Programming Interface)소프트웨어 프로그램이 다른 소프트웨어 프로그램으로 데이터를 전송할 수 있도록 하는 규칙 집합이다. 쉽게말해, 필요한 서비스를 얻기 위해 다른 프로그램과 소통할 수 있도록 하는 인터페이스(메신저 역할) 이자,주고 받을 수 있는 데이터의 형식을 정하는 규격(매뉴얼)이라고 볼 수 있다. API종류접근 방식에 따른 API 종류1. Private API내부 API로, 기업이나 연구단체 등에서 자체 제품과 운영 개선을 위해 단체 내부에서만 사용한다.제 3자에게 노출되지 않는다. 2. Public API개방형 API로, 모두에게 공개된다.Public API 중에서도 접속하는 대상에 대한 제약이 없는 경우에는 Open API라고 한다. 오픈 API ..