본문 바로가기

Learning-log126

[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.
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.
(Java)백준 1991. 트리 순회 1. 문제 조건 N개의 노드를 가진 트리가 노드 자신과 그 노드에 대한 왼쪽, 오른쪽 자식 주어지는 형태로 입력값이 들어옴. 주어진 트리를 전위, 중위, 후위 순회한 결과를 출력해야 함 2. 아이디어 문제에 대한 특별한 아이디어보다는 트리의 구현이 필요했던 문제. 입력되는 노드 값이 A ~ Z만 가능하므로 크기가 26인 배열을 활용해도 괜찮음(메모리 낭비 크지 않을 것이기 때문) 하지만 트리 구현 공부를 할 겸, 노드 클래스와 트리 클래스를 필요에 맞게 직접 만들어 구현해 봄. 3. 구현 - 아쉬운 점 : 트리 클래스의 search 부분 구현이 탐색과 삽입의 기능을 모두 하고 있어 아쉬움이 남음. search는 해당 data를 찾는 노드를 Root부터 찾기 시작해서 최종적으로 새로 들어갈 data가 들어.. 2023. 6. 20.
[Java] 람다식(Lamda) 개념 및 사용 정리 1. 람다함수 개념 1) 익명함수를 지칭하는 용어(메소드의 이름 필요 없음) 2) 수학에서 사용하는 함수를 보다 단순하게 표현, 함수를 하나의 식으로 표현 3) 함수형 인터페이스의 인스턴스를 생성하여, 함수를 변수처럼 선언 4) 1급 객체 -> Stream API의 매개변수로 전달 가능 2. 람다의 특징 - 람다식 내의 지역변수는 final을 붙이지 않아도 상수로 간주 - 람다식으로 선언된 변수명은 다른 변수명과 중복 불가 - 람다식으로 생성된 순수 함수는 함수형 인터페이스로만 선언 가능 3. 람다의 장단점 1) 장점 - 코드 간결해짐 - 개발자의 의도가 식에 드러나게 되어 가독성이 높아짐 - 함수를 만드는 과정 없이 한번에 처리해 생산성 높아짐 - 병렬 프로그래밍 용이 2) 단점 - 람다를 사용하여 만.. 2023. 6. 20.