본문 바로가기

분류 전체보기176

[Java] Optional이란? Optional 활용법 1. NullPointerExceptionnull처리가 취약한 코드예시/* 주문 */public class Order { private Long id; private Date date; private Member member; // getters & setters}/* 회원 */public class Member { private Long id; private String name; private Address address; // getters & setters}/* 주소 */public class Address { private String street; private String city; private String zipcode; // getters & setters}/* 주문을 한 회원이 살고 .. 2023. 8. 26.
(DB2편) 섹션5-3. JPA 소개 1. ORM - Object-relational mapping(객체 관계 매핑) - 객체는 객체대로 설계 - 관계형 데이터베이스는 관계형 데이터베이스대로 설계 - ORM 프레임워크가 중간에서 매핑 - 대중적인 언어에는 대부분 ORM 기술이 존재 2. JPA - Java의 ORM기술 - 마치 Java Collection처럼 생김 - 애플리케이션과 JDBC 사이에서 동작 - JPA 동작 - 저장 - JPA 동작 - 조회 - JPA 버전 1.0 : 초기버전, 복합키, 연관관계 기능 부족 2.0 : 대부분 ORM 기능 포함, JPA Criteria 추가 2.1 : 스토어드 프로시저 접근, 컨버터, 엔티티 그래프 기능이 추가 - JPA를 사용해야 하는 이유 SQL 중심적 개발에서 객체 중심으로 개발 생산성 증가 .. 2023. 7. 10.
플로이드 워셜 알고리즘 1) 개념 - 모든 최단 경로를 구하는 알고리즘 - 다익스트라가 하나의 정점에서 모든 정점까지의 최단거리를 구한다면, 플로이드-워셜 알고리즘은 한번 실행하여 모든 노드간 최단 경로를 구할 수 있다. 다익스트라에 대한 설명은 아래 링크를 통해 확인하자. 2023.07.05 - [Learning-log -CS/Data Structure & Algorithm] - (알고리즘) 다익스트라 (JAVA , for문 활용 & PriorityQueue 활용 방식 비교)\ (알고리즘) 다익스트라 (JAVA , for문 활용 & PriorityQueue 활용 방식 비교) 1) 개념 한 정점(노드)에서 다른 정점(노드)까지의 최단 경로를 구하는 알고리즘 도착 정점 뿐만 아니라 다른 정점까지 최단경로로 방문하여 각 정점까지의.. 2023. 7. 5.
(알고리즘) 다익스트라 (JAVA , for문 활용 & PriorityQueue 활용 방식 비교) 1) 개념 한 정점(노드)에서 다른 정점(노드)까지의 최단 경로를 구하는 알고리즘 도착 정점 뿐만 아니라 다른 정점까지 최단경로로 방문하여 각 정점까지의 최단 경로를 모두 찾을 수 있음 탐욕기법을 사용한 알고리즘으로 MST 프림 알고리즘과 유사 2) 알고리즘 단계 D : 거리 계산을 위한 배열 U : 경로 배열 출발 노드(a)를 선택 후 a와 연결된 정점들에 대해 배열(D) 값을 가중치로 업데이트한다. >> 다른 정점들은 아직 도달할 수 없는 정점이므로 배열 값 무한대인 상태(배열 초기값을 무한대로 설정해두기)이다. D배열 중 거리가 가장 작으면서 U에 없는 정점(b) 선택한다. a에서 b를 경유해서 갈 수 있는 정점 후보를 보고 그 때 가중치 값을 D에 UPDATE(D[b] +a[b][c])하고 D에 .. 2023. 7. 5.
Intellij 단축키 모음 General : 일반적인 단축키 Alt + #[0-9] : 각 단축키에 해당하는 도구창 열기 Ctrl + S : 모두 저장 Ctrl + Shift + F12 : 편집기(Editor) 영역을 최대로 크기로 토글 Ctrl + Shift + I : 현재 프로필 기준으로 현재 파일 검사 Ctrl + Alt + S : 설정창(Settings) 열기 Ctrl + Alt + Shift + S : 프로젝트 구조창(Project Structure) 열기 Double Shift : 전체 검색창 열기 Debugging : 디버깅 관련 단축키 F8 : 현재 브레이크된 라인에서 다음 라인으로 이동 F7 : 현재 브레이크된 라인에서 실행하고 있는 메소드로 이동 Shift + F8 : 브레이크된 라인에서 호출한 곳으로 이동 Al.. 2023. 7. 5.
[Python] FastAPI 1. FastAPI란 1) 현대적이고, 빠르며, 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크 2) 특징 빠름 빠른 코드작성 적은 버그 직관적 쉬움 코드 짧음 견고함 표준기 2. 설치하기 1) 터미널에 아래와 같이 ' pip install fastapi' 입력하기 2) 프로덕션을 위해 Uvicorn 또는 Hypercorn과 같은 ASGI 서버 필요 => 터미널에 'pip install "uvicorn[standard]"' 입력 3. 예제 작성 및 실행해보기 1) main.py를 생성 후, 아래와 같이 코드 작성 - 서버 주소로 이동하면 read_root() 가 동작하여 {"Hello" : "World"} 데이터 전송되어 화면에 보이게 됨 - '서버주소/item.. 2023. 6. 28.