
https://ghrnwjd.tistory.com/entry/JAVA-JPA-ORM [SPRING] JPA, ORM [ JPA ] JPA ( Java Persistence API )로 자바 진영의 ORM 기술 표준이다. JPA는 인터페이스의 모음이다. (JPA 2.1 기준 HIbernate, EclipseLink, DataNucleus 의 표준 명세를 구현했다.) [ ORM ] ORM (Object-Relational Mapping) 로 ghrnwjd.tistory.com 저번글에 이어서 작성해보려고 합니다. JPA JPA는 자바 진영의 ORM 기술 표준이다. 객체와 테이블의 차이로 책에서 가장 이해가 잘 되었던 구문은 연관관계에 대한 설명이었다. 객체는 참조를 통해 접근하고 참조에 접근하여 연관된 객체..

Tree node 와 edge 로 연결한 계층형hierarchical자료구조 하나의 노드로 이루어진 트리는 그 노드 자체가 트리이며, 루트이다 트리 용어 차수 (degree): 노드가 가지고 있는 서브트리의 수 리프, 단말: 차수가 0인 노드 비단말: 차수가 0이 아닌 노드 트리의 차수: 트리가 가지고 있는 노드 중에서 차수 중에서 최대 차수 레벨 트리의 높이: 트리의 최대 레벨 바이너리 트리 (이진 트리) 모든 노드가 두개의 서브트리나 리프노드인 트리 이진 트리 자체가 노드가 없는 공백 트리일 수 있음. 레벨 k의 최대 노드수는 2^k 높이가 h인 이진 트리의 최대노드 수 2^(h+1) - 1 편향 트리 포화 이진 트리 완전 이진 트리 완전 이진트리일까요 완전 이진트리 일차원 배열 표현 이진 트리의 인..

깃 커밋로그를 통해서 출석할 수 있는 시스템을 만들어 보았습니다. 220.67.124.108/ LAB 426 220.67.124.108 Linux 톰캣 서버로 먼저 만들어서 현재는 html, javascript를 이용해서 만들었습니다. 이를 스프링부트를 사용하여 만들어보려고 합니다. 사용하는 github REST API 1. List repositories for a user 사용자의 레파지토리 정보를 가져옵니다. name이라는 key에 대한 value를 가져와서 저장해두려고 합니다. 2. List commits date라는 key에 대한 value를 가져와 현재 날짜와 비교하려고 합니다. 깃허브 api 의 시간이 한국시간과 달라서 +9시간을 더해줘야 됬습니다. Spring에서 HTTP 요청을 위해 사용..
DFS(Depth First Search) DFS는 깊이 우선 탐색 알고리즘이다. DFS는 스택, 재귀함수를 사용하여 구현한다. 모든 그래프에 대해서 적용 가능한 탐색 알고리즘이다. 그래프 노드 탐색에서는 전위순회와 탐색하는 순서가 같다. 순서는 0, 1, 3, 4, 2, 5, 6 노드를 순차적으로 탐색한다. 인접 행렬을 사용할 경우 시간복잡도: O(V²) 노드 n의 인접 노드를 찾는 과정에서 O(V)의 시간복잡도가 필요하고, 모든 정점을 탐색해야하므로 V번 반복해야 하기 때문에 총 시간 복잡도는 O(V²) 가 된다. 인접 리스트를 사용할 경우 시간복잡도: O(V+E) 노드 n의 리스트에는 노드 n과 인접한 노드 개수만큼만(차수만큼) 들어있다. 다른 노드의 경우도 이러할 것이다. 이 개수를 모두 합하면 ..

새로운 프로젝트를 가져올 때 마다 헷갈리는 부분들을 정리해놓으려고 한다. Gradle 프로젝트를 만들었다. 기본 설정 File ➙ Setting ➙ Build, Execution, Deployment ➙ Build Tools ➙ Gradle Java JDK 버전 맞추기 build.gradle을 보면 프로젝트의 자바 버전을 알 수 있다. sourceCompatibility = '17' File ➙ Project Structure ➙ Project Setting ➙ Project 명시된 부분보다 이상 버전의 jdk로 설정한다. 프로젝트 빌드하기 최근 Model repo에서 예전 Model로 불리는 경우가 있었다. Project를 새로 빌드를 해줘야되는 것인데 두가지 방법이 있었다. 1. Build ➙ Bui..

백엔드 개발에서 다른사람의 코드를 이해하고 제가 짠 코드와 합치는 과정을 적어보려고 합니다. 프로젝트 이름은 icelink 입니다. 1번째 다른 사람의 코드를 들고온 뒤 실행했을 때 에러가 발생하였습니다. java.sql.SQLException: Access denied for user 'icelink'@'localhost' (using password: YES) 나의 DB 설정과 달라서 발생한 에러였고 username을 hoyoung으로 바꾸어 해결하였습니다. datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/icelink?serverTimezone=Asia/Seoul # username: ic..

대칭 암호 == 관용 암호 == 비밀-키 암호 == 단일-키 암호는 다 같은 말이다.대칭 암호 알고리즘으로 DES, 3DES, AES가 있다.대칭 암호 요소평문: 원문 데이터암호 알고리즘: 원문 데이터를 변환하는 알고리즘비밀 키: 알고리즘의 입력으로 사용되며 암호 알고리즘의 키암호문: 암호화된 메시지복호 알고리즘: 암호화된 메시지를 역으로 평문으로 만든다.대칭 키 필수 사항강한 알고리즘: 암호문/평문을 알고 있더라도 키를 알아내지 못하도록 알고리즘이 강력해야 한다.송신자와 수신자가 공유하는 키는 분배 방법이 중요하다.보안은 키의 비밀성의 의해 지켜진다. 암호화 알고리즘은 공개되어 있다. 보안의 핵심은 키를 얼마나 잘 보호하는지에 달려있다.암호암호화는 3개의 단계로 이루어진다. 평문을 암호문으로 전환하는 ..

데이터 처리 장비의 발달 이전 물리적 방법으로 인해 처리 되었기 때문에 정보 보안 문제가 크게 대두되지 않았지만 컴퓨터의 등장으로 인해 정보를 보호할 수 있는 자동화된 도구가 필요하게 되었고 궁극적으로 공격자를 막고 데이터 보호를 위해 설계한 도구를 컴퓨터 보안이라고 한다.네트워크 보안대부분의 기관에서 사용되는 네트워크는 하나의 네트워크가 아닌 여러개의 네트워크가 연결(인터넷)되어 있기에 인터넷 보안 이라고도 한다.보안에 문제가 되는 사안이 일어나지 않도록 예방, 감지, 복구에 초점을 둔 인터넷 보안을 목표로 한다.NIST National Institute of Standards and Technology의 약자로 FIPS, SP 문서를 만든다. ISOC Internet Society의 약자로 IETF(..

REST REST(Representational State Transfer)는 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미합니다. URL을 통해 자원을 명시 HTTP Method를 통해 CRUD를 지원한다. CRUD : Create, Read, Update, Delete의 약자로 데이터 처리 기능인 생성, 읽기, 갱신, 삭제를 일컫는다. URL을 통해 자원을 명시하고 HTTP Method를 통해 CRUD를 지원하여 PayLoad을 반환한다. payload는 주로 JSON, XML을 통해 주고받는것이 일반적이다. REST 특징 Server-Client 자원을 제공하는 곳이 Server, 요청하는 쪽이 Client Server: API를 제공하고 비즈니스 로직 처리 및 저장을 책임진..

저번에 쓴 글에서는 오류가 있었던게 내가 직접 파일 시스템에 올렸었던게 적용이 되어있는 상태였다. 파일 시스템을 삭제 시킨 뒤에는 정상적으로 업로드 되지 않는 문제점이 있었다. tf model 로드 tf.model을 로드하는 방법으로 여러가지 방법이 있었다. 1. 로컬 저장소 const model = await tf.loadLayersModel('localstorage://my-model'); 2. indexedDB const model = await tf.loadLayersModel('indexeddb://my-model'); 3. HTTP const model = await tf.loadLayersModel('http://model-server.domain/download/model.json'); 4..