분류 전체보기411 자바 ORM 표준 JPA 프로그래밍 : JPA 소개 (1장) 📌 SQL을 직접 다룰 때 발생하는 문제점 ✔️ 반복, 반복 그리고 반복 DB는 객체 구조와는 다른 데이터 구조를 가져 객체를 DB에 직접 저장하거나 조회할 수 없다. 따라서 개발자가 직접 애플리케이션과 API 중간에서 변환 작업을 직접 해야 한다. 객체를 DB에 CRUD하려면 너무 많은 코드를 작성해야 한다. 즉, 비슷한 일을 계속 반복해야 한다. ✔️ SQL에 의존적인 개발 기능을 모두 개발하고 나서 추가적인 요청이 들어왔을 때 너무 많은 코드(등록, 수정, 연관 객체 등)를 수정해야 한다. 엔티티를 신뢰하고 사용할 수 없다. 일일이 확인해야 한다. 강한 의존관계를 가져 진정한 의미의 계층 분할이 아니다. ✔️ JPA와 문제 해결 JPA를 사용하면 객체를 데이터베이스에 저장하고 관리할 때 JPA가 제.. 2022. 8. 12. [Java] Java의 데이터 타입, 변수 그리고 배열 ✍️ 학습 목표 프리미티브 타입 종류, 값의 범위 그리고 기본 값 프리미티브 타입 vs 레퍼런스 타입 리터럴이란? 변수 선언 및 초기화 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언 타입 추론, var 💡프리미티브 타입 종류, 값의 범위 그리고 기본 값 Java에는 8가지의 기본형 타입(primitive type)을 미리 정의하여 제공한다. 크게 논리형, 정수형, 실수형, 문자형 4가지로 나누어지고 표현 가능한 범위에 따라 또 나누어진다. 문자형인 char는 Java에서 유니코드를 사용하기 때문에 2 byte이다. 기본 값이 존재해서 NULL이 존재하지 않는다. 💡프리미티브 타입 vs 레퍼런스 타입 데이터 타입은 크게 '기본형(Primitive Type)'과.. 2022. 8. 12. [Python] 백준 1092번 : 배 https://www.acmicpc.net/problem/1092 1092번: 배 첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보 www.acmicpc.net 💡 문제 풀이 그리디 알고리즘 문제이다. 그리디 알고리즘 문제답게 가장 최선의 경우를 먼저 따지면 된다. 즉, 크레인이 남아있는 박스 중 가장 무거운 박스를 옮길 수 있는지 따지면 된다. 우선 가장 큰 무게를 드는 크레인이 가장 무거운 박스를 못 옮기면 -1을 return 한다. -1이 아닌 경우는 모든 박스를 옮길 수 있다는 뜻이므로 while 문을 돌린다. 시간을 줄이기 위해서.. 2022. 8. 11. [Python] 백준 1644번 : 소수의 연속합 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 💡 문제 풀이 투 포인터 문제이다. 소수랑 섞은 문제인데 범위가 4백만까지 이므로 에라토스테네스의 체를 사용해서 소수를 찾아준다. 찾은 소수를 대상으로 투 포인터 알고리즘 중 특정 값과 일치하는 부분 배열을 찾는 알고리즘으로 카운트하면 된다. ✔️ 느낀 점 그렇게 어렵지 않았는데 시간이 생각보다 오래 걸리는 풀이여서 더 나은 코드로 바꾸고 싶었으나 굳이 그러기엔 너무 귀찮아서 넘어가야겠다. 💻 코드 N = int(input()) prime_nums = [True] * (N+1) for i in range(2, int.. 2022. 8. 10. [Python] 백준 1806번 : 부분합 https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 💡문제 풀이 투 포인터 문제이다. 투 포인터의 2가지 유형 중 특정 값을 넘는 배열에 대해서 구하면 된다. 누적 값이 S보다 크다면 개수를 따져주고 왼쪽 포인터를 1 늘린다. S보다 작다면 오른쪽 포인터를 1 늘린다. ✔️ 느낀 점 쉬운 문제였는데 문제를 제대로 안 읽어서 오래 걸렸다. '이상인 값 모두' 💻 코드 N, S = map(int, input().split()) arr =.. 2022. 8. 10. [Java] JVM과 자바 코드 실행 ✍️ 학습 목표 JVM 컴파일 방법 실행 방법 바이트코드 JIT 컴파일러 JVM 구성 요소 JDK와 JRE 📌JVM이란? Java Virtual Machine의 약자로 자바를 실행하기 위한 가상 머신이다. Java는 완전한 기계어가 아니고 바이트 코드라서 해석하고 실행할 수 있는 가상의 OS가 필요하다. 이 역할을 해주는 것이 JVM이다. ✔️ JVM의 기능 자바 프로그램이 어느 환경에서도 실행될 수 있게 한다. 프로그램 메모리를 관리하고 최적화한다. JVM는 '가비지 컬렉션'이란 프로세스를 통해 메모리를 관리한다. 이 가비지 컬렉션은 이름에서 알 수 있듯이 사용되지 않는 메모리를 정리한다. 따라서, JVM이 메모리를 효율적으로 관리하고 최적화한다는 것이다. Java는 OS에 독립적이지만, JVM은 OS.. 2022. 8. 8. 이전 1 ··· 26 27 28 29 30 31 32 ··· 69 다음