분류 전체보기
-
[IntelliJ] 인텔리제이 Community버전, DB tool window 설정, DataBase NavigatorIDLE/IntelliJ 2021. 10. 19. 15:17
그렇다 커뮤니티 버전은 DB 도구를 지원받지 않는다... As of intellij version 2017.1, search for the plugin "Database navigator" in Settings -> Plugins. Then you can open the db browser from View -> Tool Windows -> DB Browser ............! IntelliJ 2017 버전부터 Database Navigator 플러그인을 설치해야 tool window 에 DB browser가 생긴다고 한다............. IntelliJ Ultimate edition 은 오른쪽에 툴바가 있다고 하는데.....🔥🔥🔥🔥🔥 방법을 알았으니 Preference(Setting) -..
-
[Spring JPA] JPA, Hibernate, Spring Data, ORM 의 개념Back End/Spring Data JPA 2021. 10. 19. 12:49
# ORM(Object Relational Mapping) Application의 객체(클래스)를 DB의 테이블로 Mapping 한다는 개념 클래스와 DB의 테이블은 기존부터 호환가능성을 염두해두고 만들어진 것이 아니기 때문에 불일치 발생이 당연 이러한 불일치를 해결하며 객체와 테이블의 관계를 바탕으로 SQL 문장을 자동으로 생성하여 객체로 DB를 조작하게 해주는 것이 ORM # JPA(Java Persistence API) JAVA진영의 표준 ORM 인터페이스, 구체 클래스는 거의 없음. # Hiberante JPA를 implements 해 구현한 class 라이브러리 DataNucleus, EclipseLink 등 JPA를 구현한 다른 라이브러리도 있다. # Spring Data JPA JPA를 한 ..
-
[Spring] Swagger - REST 웹 서비스의 문서화Back End/Spring Boot 2021. 10. 16. 15:45
# Swagger 란? REST 웹 프로젝트를 문서화 해주며, 이를 통해 관리 및 다른팀원들이 편리하게 API를 호출해보고 테스트 할 수 있는 프레임워크이다. # Spring Fox Swagger 사용법 1. Maven Repository 에서 Spring Boot Starter 검색 후 build.gradle 에 dependencies 추가 https://mvnrepository.com/artifact/io.springfox/springfox-boot-starter/3.0.0 2. 프로젝트 실행 후, 설정된 도메인주소/swagger-ui/ 로 접속. (local 환경이라면 http://localhost:포트번호/swagger-ui/) # Swagger Annotation Annotation 적용대상 및..
-
[Spring] Jacoco - 코드 커버리지 체크하기(TDD)Back End/Spring Boot 2021. 10. 15. 18:41
# 코드 커버리지(Code Coverage)란? 코드 커버리지는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표 소프트웨어 테스트를 진행했을 때 코드 자체가 얼마나 실행되었냐는 것 Jacoco를 통해 눈으로 쉽게 확인 할 수 있다....! # Jacoco 사용법 (IDLE - IntelliJ) 1. 프로젝트 폴더의 build.gradle 파일의 plugins 에 id 'jacoco' 추가 후, gradle 리셋. 2. 우측의 Gradle 을 클릭하면, 'jacocoTestReport' 와 'test' 항목을 위의 스크린샷 처럼 확인 할 수 있음 3. 'test' 를 더블클릭하면 test 가 실행되며, 프로젝트 폴더의 build -> reports 폴더가 생성됨 4. reports-..
-
[Java] Swap 함수 구현 (Call-by-value)프로그래밍 언어/Java 2021. 10. 15. 18:26
# Call-by-Reference 의 Swap 함수 객체나 배열이 인자로 들어왔을 때, 주소값이 복사되므로 멤버(배열원소)에 직접 접근하여 값을 바꾸면 바꿔진다. 따라서, 일반적인 temp 를 두는 방식으로 값을 교환하면 된다. # Call-by-value 의 Swap 함수 primitive type(int, float, double, ...) 의 값을 바꿔야 하는 경우 Wrapper Class 또한 데이터를 담고있는 멤버에 직접접근 권한이 없기에 해당 경우로 취급하여 주소값 자체 값으로 취급하여 바꿔주면 된다. # 구현 코드 /* Call-by-Value */ public class SwapTest1 { public static int swap(int a, int b){ return a; } publ..
-
행렬연산을 위한 자료구조, Tensor, Torch 를 자바로 재구현 해보자!Computer Basis/Algorithms 2021. 10. 14. 13:11
본문은 아직 완성되지 않았음. # 행렬연산을 위한 자료구조 Tensor, Torch - 1차원 배열로 구성되어있다. - offset, strides 의 개념으로 모든 것을 해결 - 전치행렬을 만들때 압도적인 성능 - 행렬의 곱셈연산은 O(n^2) 로 추정 (직접 구현하고 추후 수정예정) # 크기가 n인 정방행렬을 전치행렬로 만들때 Brute-force 시간복잡도 - 3중포문, O(n^3) # Tensor 구조로 전치행렬 시간복잡도 - O(1) - 2차원 배열로 바꿀때, O(n^2) - 데이터 복사 시간 # Tensor.class public class Tensor { public int[] tensor; public int offset; public int[] strides; public int rowL..
-
[React] withRouter & JS로 SPA 방식 라우팅Front End/React 2021. 10. 12. 16:02
# withRouter Higher-order Component 로 라우터에 의해서 호출된 컴포넌트가 아니어도 match, location, history 객체에 접근 가능하게 해준다. 하위 컴포넌트에서 상위 계층간의 거리가 멀어도 match, location, history를 안전하게 받을 수 있다. (props 로 열심히 전달하지 않아도 된다.) # JS로 SPA 방식으로 라우팅하기 + withRouter 사용 예시 로 넘겨 줘도 되나, 계층간의 거리가 멀어지면 해당방식은 오류의 근원이 됨. // src/pages/Login.jsx import LoginButton from '../components/LoginButton'; export default function Login() { return (..
-
[React] 라우팅 (Route, Link, NavLink, Switch) + QueryParameterFront End/React 2021. 10. 12. 14:18
# • path : 해당 path 에 접근 시, 설정된 component나 render 함수를 실행 * :변수명 을 사용하여 변수를 URL에 삽입가능 • keyword exact : 정확히 path에 일치할때만 component 를 render • component : 해당 path 에 접근 시, component render • render : 인자로 함수를 받으며, 해당 path에 접근 시, render 함수 실행 (따라서, 논리연산이 필요한 작업은 render를 사용) * component 와 render를 같이 사용 시, component가 우선권을 가져 render는 실행되지 않음 # • html의 a 태그(anchor)를 조작하여, 해당 URL로 진입시 서버에서 리소스를 리로딩하지 않고 SPA..