전체 글 146

[프로그래머스] 숫자 문자열과 영단어 / java

https://programmers.co.kr/learn/courses/30/lessons/81301 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr - String 클래스인 replaceAll 와 replace 에 관한 아래 글 참고 https://blog.naver.com/zzang9ha/221962841767 * replaceAll([정규식], 바꿀내용) ex. replacAll ([abc], "A") -> a 이거나 b이거나 c 이면 A 로 변환 * replaceAll(바꿀부분, 바꿀내용) ..

Algorithm Study 2022.05.11

[프로그래머스] 로또의 최고순위와 최저순위

https://programmers.co.kr/learn/courses/30/lessons/77484?language=java 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr level1 간단한 문제였다 1. 당첨결과 win_num과 민우 lottos 배열의 일치하는 갯수를 구한다 -> int equal_num 2. 민우 lottos 배열에서 0 의 갯수를 구한다. -> int zero_num - 0의 갯수만큼 만약 모든 숫자가 맞는다 : 최고순위 - 0의 갯수만..

Algorithm Study 2022.05.11

고급매핑 : 상속관계 매핑 /@MappedSuperclass

상속관계매핑 관계형 데이터베이스는 상속관계가 없다. 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사하다. 상속관계 매핑 : 객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 슈퍼타입 서브타입 논리모델을 실제 물리모델로 구현하는 방법 총 3가지 1. 조인전략: 각각 테이블로 변환 @Inheritance(strategy=InheritanceType.JOINED) 2. 단일 테이블 전략: 통합 테이블로 변환 @Inheritance(strategy=InheritanceType.SINGLE_TABLE) 3. 구현 클래스마다 테이블 전략 : 서브타입 테이블로 변환 @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS) 정리 : 조인전략 과 단일 테이블 ..

[프로그래머스] 신고결과 받기 / java, hashMap

프로그래머스 level1. 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 백준만 열심히 풀다가 오랜만에 프로그래머스를 풀었다. 레벨1이라해서 쉬울거라 생각하고 풀었는데, Map ArrayList쓰다가 헷갈려서 멘붕왔따 . . . 진짜 나레기 :( 아직도 너무너무 부족하구나 .. (지금 회사 어케들어갔지ㅎ) 이 문제는 꼭 복습해보도록! HashMap 에 대해 공부할겸, 사용법도 익힐겸! HashMap - HashMap

Algorithm Study 2022.05.09

HashMap

HashMap은 Map을 구현했으므로 Map의 특징인 키(key)와 값(value)을 묶어서 하나의 데이터로 저장한다는 특징을 갖는다. 해싱(hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보인다. HashMap은 키와 값을 각각 Object타입으로 지정한다. 키(key) : 컬렉션 내의 키 중에서 유일해야 한다. 값(Value) : 데이터의 중복을 허용한다. Set entrySet() : HashMap에 저장된 키와 값을 엔트리(키와 값의 결합)의 형태로 Set에 저장해서 반환. Object get(Object key) : 지정된 키(key)의 값(객체)를 반환. Set keySet() : HashMap에 저장된 모든 키가 저장된 Set을 반환. Collection..

ArrayList : 저장 순서가 유지되고 중복을 허용하는 컬렉션 클래스

ArrayList - 컬렉션 프레임웍에서 가장 많이 사용되는 컬렉션 클래스일 것이다. - List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다. - Object배열을 이용해서 데이터를 순차적으로 저장한다. ArrayList() : 크기가 10 인 ArrayList를 생성 ArrayList(Collection c) boolean add(Object o) void add(int index, Object element) void clear() boolean contains(Object o) Object get(int index) int indexOf(Object o) Iterator iterator() Object remove(int index) Object set(int index..

컬렉션 프레임웍 / Collection인터페이스 / List / Set/ Map

컬렉션 프레임웍 (Collections Framework) ? - 데이터 군을 저장하는 클래스들을 표준화한 설계 - 다수의 데이터(=데이터 그룹)을 표준화된 프로그래밍 방식 - JDK1.2 부터 컬렉션 프레임웍이 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고, 모든 컬렉션 클래스를 표준화된 방식으로 다룰수 있도록 체계화되었다. 컬렉션 프레임웍에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고, 3개의 인터페이스를 정의하였다 -> List / Set / Map - List와 Set의 공통적인 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다. * 컬렉션 프레임웍의 핵심 인터페이스와 특징 List 순서가 있는 데이터 집합. 데이터의 중복을 허용한다. ex) Arra..

다양한 연관관계 매핑

다대일[N:1] 일대다[1:N] 일대일[1:1] 다대다[N:M] 연관관계 매핑 시 고려사항 3가지 1. 다중성 다대일 : @ManyToOne 일대다 : @OneToMany 일대일 : @OneToOne 다대다 : @ManyToMany 2. 단방향, 양방향 테이블 외래 키 하나로 양쪽 조인 가능 사실 방향이라는 개념이 없음 객체 참조용 필드가 있는 쪽으로만 참조 가능 한쪽만 참조하면 단방향 양쪽이 서로 참조하면 양방향 3. 연관관계의 주인 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 객체 양방향 관계는 A->B, B->A처럼 참조가 2군데 객체 양방향 관계는 참조가 2군데 있음. 둘 중 테이블의 외래키를 관리할 곳을 지정해야함. 연관관계의 주인 : 외래 키를 관리하는 참조 주인의 반대편 : 외래키에..

연관관계 매핑 기초

객체와 테이블 연관관계의 차이를 이해 객체의 참조와 테이블의 외래 키를 매핑 방향(Direction) : 단방향, 양방향 다중성(Multiplicity): 다대일(N:1) , 일대다(1:N), 일대일(1:1), 다대다(N:M) 이해 연관관계의 주인(Owner) : 객체 양방향 연관관계는 관리 주인이 필요 1. 연관관계가 필요한 이유 - 객체지향 설계의 목표는 자율적인 객체들의 협력공동체를 만드는 것이다. by조영호(객체지향의 사실과 오해) - 객체를 테이블에 맞추어 데이터 중심으로 모델링하면, 협력관계를 만들 수 없다. 테이블은 외래 키로 조인을 사용해서 연관된 테이블을 찾는다. 객체는 참조를 사용해서 연관된 객체를 찾는다. 테이블과 객체 사이에는 이런 큰 간격이 있다. - 참조 대신 외래키를 그대로 사..

엔티티 매핑

1. 객체와 테이블 매핑 @Entity @Entity 가 붙은 클래스는 JPA가 관리, 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity는 필수이다. 주의점 : 기본생성자 필수 ( 파라미터가 없는 public 또는 protected 생성자) : final 클래스, enum, interface, inner 클래스 사용 X : 저장할 필드에 final 사용 X name 속성 - JPA에서 사용할 엔티티 이름을 지정한다. - 기본값 : 클래스 이름을 그대로 사용 ( ex. Member) - 같은 클래스 이름이 없으면 가급적 기본값을 사용한다. @Table 엔티티와 매핑할 테이블 지정 속성 기능 기본값 name 매핑할 테이블 이름 엔티티 이름 사용 catalog 데이터베이스 catalog..