본문 바로가기

분류 전체보기

(138)
자바 ORM 표준 JPA 프로그래밍 - 기본편(2) 김영한님의 자바 ORM 표준 JPA 프로그래밍을 정리한 내용입니다. 연관관계 맵핑 시 고려사항 3가지 다중성 • 다대일: @ManyToOne • 일대다: @OneToMany • 일대일: @OneToOne • 다대다: @ManyToMany 단방향, 양방향 테이블 외래 키 하나로 양쪽으로 조인이 가능하다. 방향이라는 개념이 없다 객체 참조용 필드가 있는 쪽으로만 참조가 가능하다. 한쪽만 참조하면 단방향, 양쪽이 서로 참조하면 양방향이라고 한다. (사실 객체 입장에서는 단방향이다 다대일 N:1- 가장 많이 사용하는 연관관계이다. 다 대 일 중 다 테이블에 외래키가 있어야 한다. 양방향 맵핑의 주인이 된다. 양방향 맵핑의 주인이 아닌 곳은 읽기만 가능하다. 일대다 실무에서 권장하지 않은 모델이다. 일대다 단방향..
자바 ORM 표준 JPA 프로그래밍 - 기본편(1) 김영한님의 자바 ORM 표준 JPA 프로그래밍을 정리한 내용입니다. SQL 중심적인 개발의 문제점 sql에 의존적인 개발을 피하기 어렵다. 객체와 관계형 데이터베이스의 괴리감 상속 객체가 상속관계에 있을 때 SQL으로는 각각의 객체를 생성하고 테이블에 따른 조인 SQL 등 해줘야 할 게 많다. 그렇기 때문에 DB에 저장할 객체는 상속관계를 쓰지 않는다. 연관관계 객체는 참조를 사용하지만, 테이블은 외래 키를 사용해 조인해야 한다. 데이터 타입 데이터 식별 방법 JPA는 객체를 자바 컬렉션에 저장 하듯이 DB에 저장하고 싶어 탄생한 기술이다. JPA Java Persistence API의 약자로 자바 진영의 ORM 기술 표준이다. 여기서 ORM은 Object-relational mapping 의 약자로 O..
BeakJoon 4344. 평균은 넘겠지 python의 round는 사사오입이 아니다. 이 부분을 생각하며 풀자" 문제 URL: https://www.acmicpc.net/problem/4344 😒문제 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. 👀제약조건 입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 예제 입력 1 5 5 50 50 70 80 100 7 100 95 90..
BeakJoon 1561. 놀이공원 "조건을 만족하는 최소시간을 구하고, 최소시간-1초에 몇명이 탈 수 있는지 확인하여 최소시간이 되었을 때 태워야하는 인원수와 놀이기구 번호를 찾는다." 문제 URL: https://www.acmicpc.net/problem/1561 😒문제 N명의 아이들이 한 줄로 줄을 서서 놀이공원에서 1인승 놀이기구를 기다리고 있다. 이 놀이공원에는 총 M종류의 1인승 놀이기구가 있으며, 1번부터 M번까지 번호가 매겨져 있다. 모든 놀이기구는 각각 운행 시간이 정해져 있어서, 운행 시간이 지나면 탑승하고 있던 아이는 내리게 된다. 놀이 기구가 비어 있으면 현재 줄에서 가장 앞에 서 있는 아이가 빈 놀이기구에 탑승한다. 만일 여러 개의 놀이기구가 동시에 비어 있으면, 더 작은 번호가 적혀 있는 놀이기구를 먼저 탑승한다고..
BeakJoon 20166. 문자열 지옥에 빠진 호석 K번 중복된 계산을 1번으로 줄이고, 각 문자열을 나타낼 수 있는 경우의 수를 map에 저장 😒문제 하루 종일 내리는 비에 세상이 출렁이고 구름이 해를 먹어 밤인지 낮인지 모르는 어느 여름 날 잠 들기 싫어 버티던 호석이는 무거운 눈꺼풀에 패배했다. 정신을 차려보니 바닥에는 격자 모양의 타일이 가득한 세상이었고, 각 타일마다 알파벳 소문자가 하나씩 써있다더라. 두려움에 가득해 미친듯이 앞만 보고 달려 끝을 찾아 헤맸지만 이 세상은 끝이 없었고, 달리다 지쳐 바닥에 드러누우니 하늘에 이런 문구가 핏빛 구름으로 떠다니고 있었다. 이 세상은 N행 M열의 격자로 생겼으며, 각 칸에 알파벳이 써있고 환형으로 이어진다. 왼쪽 위를 (1, 1), 오른쪽 아래를 (N, M)이라고 하자. 너는 아무 곳에서나 시작해서 상..
BeakJoon 1072. 게임 실수의 정수형 타입캐스팅은 부정확할 수 있다. 따라서 퍼센트를 계산할 때 정수로만 계산될 수 있도록 한다 문제 URL: https://www.acmicpc.net/problem/1072 😒문제 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시작했다. 의심을 피했다고 생각한 형택이는 다시 게임을 켰다. 그 때 형택이는 잠시 코딩을 하는 사이에 자신의 게임 실력이 눈에 띄게 향상된 것을 알았다. 이제 형택이는 앞으로의 모든 게임에서 지지 않는다. 하지만, 형택이는 게임 기록을 삭제 할 수 없기 때문에, 자신의 못하던 예전 기록이 현재 자신의 엄청난 실력..
BeakJoon 1043. 거짓말 "BFS, Union-Find, Set함수 활용해서 진실을 아는사람 목록을 구할 수 있다" 문제 URL: https://www.acmicpc.net/problem/1043 😒문제 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다. 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다. 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다. 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것이다. 따라서 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다. 당연히, 어떤 사람이 어떤 파티에서는 ..
Clean code 5장. 형식 맞추기 5장 형식 맞추기 원활한 소통을 하기 위해 코드의 형식을 맞춘다. 아래 요약된 모든 것의 목적은 다른사람이 내가 작성한 코드를 잘 이해하기 위해서이다. 형식을 맞추는 목적 원활한 소통을 장려 코드 형식은? 적절한 행 길이를 유지 200줄인 파일로도 커다란 시스템을 구축 할 수 있음 신문 기사처럼 작성해라 이름은 간단하면서도 설명이 가능하게 짓는다. 이름만 보고도 올바른 모듈을 살펴보고 있는지 아닌지를 판단할 정도로 신경 써서 짓는다. 소스 파일 첫 부분은 고차원 개념과 알고리즘을 설명한다. 아래로 내려갈수록 의도를 세세하게 묘사한다. 마지막에는 가장 저차원 함수와 세부 내역이 나온다. 개념은 빈행으로 분리해라 패키지 선언부, import 문, 각 함수사이에 빈 행이 들어감. 세로 밀집도 세로 밀집도는 연..
LeetCode 819. Most Common Word(문자열 조작) LeetCode 819. Most Common Word(문자열 조작) Category: 알고리즘 LET: 2022년 4월 20일 오후 9:36 PublishDate: 2022년 4월 20일 오후 9:08 Tag: LeetCode, 문자열 조작 Visibility: Public 😒문제 Given a string paragraph and a string array of the banned words banned, return the most frequent word that is not banned. It is guaranteed there is at least one word that is not banned, and that the answer is unique. The words in paragraph..
Clean Code 4장. 주석 4장 주석 작성된 코드로 의도를 파악하는 것이 좋다. 과하고 의무적으로 다는 주석들은 나쁜 주석들이다. 주석은 나쁜 코드를 보완하지 못한다. 코드로 의도를 표현하라 if((employee.flags & HOURLY_FALG) 보단 if (employee.isEligibleForFullBenefits()) 좋은 주석 법적인 주석 각 소스 파일 첫머리에 주석으로 들어가는 저작권 정보와 소유권 정보는 필요하고 타당 정보를 제공하는 주석 의도를 설명하는 주석 의미를 명료하게 밝히는 주석 일반적으로는 인수나 반환값 자체를 명확하게 만들면 좋겠지만, 인수나 반환값이 표준 라이브러리나 변경하지 못하는 코드에 속한다면 의미를 명료하게 밝히는 주석이 유용 결과를 경고하는 주석 //SimpleDateFormat 은 스레드..