일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- MariaDB
- API
- 티스토리챌린지
- group by
- docker
- Javascript
- oracle
- Python
- 명령어
- top
- PostgreSQL
- mysql
- network
- 트랜잭션
- mssql
- 리눅스
- 차이점
- DBMS
- spring
- MongoDB
- IntelliJ
- java
- rsync
- git
- 오블완
- Linux
- 자바
- analytics4
- JPA
- SQL
- Today
- Total
목록오블완 (21)
hanker
BigQuery에서 테이블 반환 함수(Table-Valued Function, TVF)는 SQL을 이용하여 매개변수를 입력받아 동적으로 테이블 형식의 결과를 반환하는 기능이다. 이는 재사용 가능한 쿼리를 정의하거나 복잡한 데이터를 매개변수화하여 간편하게 처리할 수 있도록 해준다.언뜻 보면 뷰와 같은 개념인 것 같지만, 뷰와 달리 매번 다른 매개변수를 입력해 동적으로 데이터를 처리할 수 있다는 장점이 있다. 1. TVF의 기본 개념 - TVF는 입력 매개변수를 받아 SQL 쿼리를 실행하여 테이블 형식의 데이터를 반환한다.- 복잡한 쿼리를 여러 번 반복해서 작성하는 대신, TVF로 재사용 가능하게 만들어 간편하게 데이터를 조회할 수 있다.- 매개변수화된 쿼리를 통해 특정 조건에 맞춘 데이터를 효율적으..
VSCode 에서 Github repository를 받아보자. VSCode → Github 연결 제일 처음으로 VSCode 창에서 F1 키를 눌러서 Git clone을 검색하여 찾는다. 해당 항목을 클릭하면 Github이랑 연동하라는 팝업창이 나오는데, Allow 버튼 클릭 버튼을 클릭하게 되면 로그인 되어있는 계정이나, 아니면 다른 계정을 추가해서 연결할 수 있다. Continue 버튼을 눌러서 진행했고, 다시 VSCode로 돌아오면 Github에 있는 Repository들이 보이는데 불러올 Repository를 선택하면 해당 프로젝트를 불러올 수 있다.이렇게 불러와서 실행도 가능하다. 끝
로컬 / 원격 브랜치를 삭제해보자 1. 로컬 브랜치 삭제 우선 git에서 로컬브랜치 목록을 불러온 후 쓰지 않는 브랜치를 삭제해보자 로컬 브랜치 목록 불러오기 git branchgit branch 명령어를 사용해보니 master와 dev 브랜치 2개가 조회되었는데, dev 사용하지 않을테니 삭제하자 git branch -d git branch -d dev 아주 간단하게 삭제되었다. 혹시 다른걸 삭제하더라도 우리 로컬에서만 삭제한거기 때문에 다시 원격 branch를 불러올 수 있다. ※ 만약 merge가 되지 않은 상태면 오류가 발생할 수 있다. merge하지 않고 삭제하려면 -D 옵션을 사용하면 된다. 2. 원격브랜치 삭제 이제 원격 브랜치도 삭제해보자원격 브랜치 목록을 조회해보면 로컬브랜..
리눅스 환경에서 Github에 있는 Repository를 가져와보자 1. Github repository 주소 복사 github에 있는 repository의 HTTPS 또는 SSH URL을 복사 한 후 아래 명령어로 가져온다. 2. repository 가져오기 (clone)git clone 단 ssh URL로 가져올 시 Deploy key 설정이나 SSH and GPG keys 등록을 해야한다. https://hanke-r.tistory.com/entry/Github-Repository-Deploy-Key-%EC%84%A4%EC%A0%95 Github - Repository Deploy Key 설정GitHub에서 Deploy Key를 설정하는 이유는 특정 리포지토리에 대해 읽기 전용 접근 권한을 제공하여..
rm 명령어는 리눅스에서 파일이나 디렉터리를 삭제할 때 사용된다.기본적인 사용법과 자주 사용하는 옵션을 알아보자 기본 사용법 : rm [option] file명 # 단일 파일 삭제rm hanker.txt# 다수 파일 삭제rm hanker1.txt hanker2.txt# 디렉터리 삭제 (-r 옵션) 디렉터리와 그 안의 모든 파일 삭제rm -r hankerDir# 강제 삭제 (-f 옵션) 삭제 전 확인을 묻지 않고 삭제할 때 사용rm -f hanker.txt# 디렉터리 내 모든 파일 강제 삭제(-rf 옵션)rm -rf hankerDir# 파일 삭제 전 확인rm -i hanker.txt# 특정 확장자 및 특정 비슷한 파일명 삭제rm *.txtrm han* rm hanker3.txt rm hanker2...
Java에서 int 타입의 정수를 String으로 변환하는 방법을 알아보자 int → String String.valueOf(int i) String.valueOf는 int를 String으로 변환하는 가장 일반적인 방법 중 하나이다. public static void main(String[] args) { int number = 35; String str = "35"; String intToStr = String.valueOf(number); if(str.equals(intToStr)){ System.out.println("O"); } if(!str.equals(number)){ System.out.println("X"); } } 결과 Integer.toString(int i) Integer.toStri..
Java 언어 문자열 처리중 초기부터 제공되었던 startsWidth() 메서드에 대해 알아보자. startsWith()Java에서 String 객체가 특정 문자열로 시작하는지 확인할 때 사용되는 메서드이다. startsWidth() 는 boolean 값을 반환하며, 해당 문자열이 주어진 접두사로 시작하면 true, 그렇지 않으면 false를 반환한다. 위 사진에 메서드를 보면 매개변수에 prefix(시작여부를 확인할 문자열)가 들어가고 toffset이라는 매개변수가 들어가는데 이는 선택사항이다. 입력하지 않으면 첫 문자열을 검색하고, 숫자를 입력하면 해당 위치부터 확인한다. 예시를 보면서 확인해보자. public static void main(String[] args) { String s = "Hank..
CGLIB (Code Generator Library)는 Java에서 동적으로 바이트코드를 생성하여 객체의 프록시를 만드는 라이브러리이다. 주로 Spring Framework에서 AOP(Aspect-Oriented Programming) 기능을 지원하기 위해 사용되고, final 클래스나 인터페이스가 아닌 클래스를 상속하여 동적으로 프록시를 생성한다. Spring 프로젝트에서 동작을 하다보면 종종 보이곤(logging level 이 Debug 로 설정하면) 하는데, Spring에서 AOP구현을 위해 자동으로 사용되기 때문에 우리가 따로 설정할 필요는 거의 없다. CGLIB의 작동 방식 1. 클래스 상속을 통한 프록시 생성 - CGLIB는 인터페이스가 아닌 구체 클래스를 상속하여 프록시를 생성한다. (여기..
개발을 하다보면 뭔가 정신줄 놓고 작업할 때가 있는데, 그 시점에 제일 많이 등장하는 예외이다. 이 예외가 왜 나는지? 안나게 하려면 어떻게 해야하는지 알아보자 발생 이유 발생이유는 여러가지가 있는데, 찬찬히 알아보자 1. Java 9 에서 추가된 List.of() 를 사용할 때, List.of()로 생성한 리스트는 읽기 전용이라서 추가/수정/삭제가 안되는데, 이를 하려고 시도하다가 발생 public static void main(String[] args) { List list = List.of("A", "B", "C"); list.remove("C"); // UnsupportedOperationException 발생 } 2. Spring JPA 에서 @Transactional(readOnly = tru..
Java에서 값 비교는 여러 가지 방법으로 수행하게 되는데,기본적으로 값 비교는 두 가지(기본 데이터 타입(primitive type), 객체(Object))로 나뉜다. 각 경우의 비교 방식을 알아보자 기본 데이터 타입(Primitive Type) 기본 데이터 타입은 int, char, boolean, float, double 등의 타입을 포함하며, == 연산자를 사용해 값을 비교한다.public static void main(String[] args) { String a = "hanker"; String b = "hanker2"; if (a == b) { System.out.println("a와 b는 같습니다."); } else { System.out.p..