본문 바로가기

DevelopmentTools34

[jpa] hibernate 자동 생성되는 sql 확인하기 jpa: properties: hibernate: show_sql: true format_sql: true show_sql: hibernate가 만들어내는 sql문을 출력 format_ sql: 출력되는 sql문을 예쁘게 출력하기 위한 속성 초기 데이터로 스키마 적용하는 방법 sql: init: mode: always # always, never, embedded sql-init-mode: 을 설정해주면 각각 root class path 위치의 schema.sql 과 data.sql에서 SQL을 로드한다. default로 SQL database initialization은 embedded in-memory database를 사용할 때만 수행된다. 유형에 관계 없이 SQL database를 항상 초기화하려.. 2023. 9. 4.
[java] Transaction과 격리 레벨에 대해서 해당 게시글은 "프로그래머스 데브코스 4기"의 팀 내 스터디 TL 과정으로 노션에 직접 작성한 글입니다. 트랜잭션(Transaction)이란? 데이터베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위 작업의 단위가 CRUD 문인가에 대한 의문이 들 수 있다고 생각한다. 게시판에서 작업의 단위를 나눈 예시를 들어보자! 게시판 사용자가 게시글을 작성하고 업로드 버튼을 눌러 업로드 다시 게시판으로 돌아와 게시판 목록에서 자신이 업로드한 게시글을 확인 1번은 Insert 질의 2번은 Select 질의 그럼, 작업의 단위가 Insert와 Select으로 2개인가요? 라고 말할 수 있겠지만 작업의 단위는 Insert와 Select 질의를 합친 행위로 1개 라는 개념으로 이해해야 한다 트랜잭션 특징 (ACID) .. 2023. 8. 15.
[java] Collections.sort override 구름 알고리즘 먼데이 2주차 3번 문제를 해결하며 java 답안은 제공이 되지않아 구글링을 하며 다른 분들의 코드를 참고하여 풀었다. 그러던중 다른 분의 코드를 보게되었다. 외부 클래스를 생성하고 새로운 클래스가 생겼으므로 Collections.sort 메소드를 오버라이드하여 새로운 정렬 메소드를 정의하는 방법을 보게 되었다. 람다식을 이용하여 해결하셨는데 기억에 꼭 남기고 싶어서 벨로그에 작성하게 되었다. Collections.sort(list, comparator); comparable은 this를 기준으로 비교하지만 comparator은 비교 대상을 2개로 두고 비교한다. int compareTo(T op1, T op2)로 두 객체의 특정값을 연산해서 음수라면 op1가 작은 것, 양수라면 op1가 .. 2023. 2. 10.
[java] 입력받는 방법 2가지 Java가 사용자로부터 입력받는 방법으로 크게 2가지가 있다 1. Scanner Scanner는 자료형이 자동으로 정해지기 때문에 입력받을 때 따로 형 변환을 할 필요가 없다. 공백과 줄바꿈을 모두 경계로 인식해서 입력을 받을 때 매우 용이하다. 이러한 편리함 때문에 대부분 입력을 받을 때 Scanner를 이용한다. Scanner 클래스를 사용하기 위해서는 import가 필요하다. Scanner 객체의 인자로는 System.in이 필요하다. System.in은 InputStream의 객체이다. 이때, InputStream은 콘솔 입력을 뜻한다. import java.util.Scanner Scanner sc = new Scanner(System.in); // 콘솔입력 2. BufferedReader 편리.. 2023. 2. 10.
[Git] 원격 저장소(깃허브) 커밋 되돌리기 원격 저장소에 push하기 전 로컬 저장소에서 커밋을 되돌리고 싶은 경우에는 간단히 아래의 명령어로 돌아갈 수 있다. git reset {commit_id} 하지만, 이미 원격저장소(깃허브)에 push한 경우에는 로컬에서 커밋을 되돌린 후 강제로 깃허브에 push 해야한다. 1. 로컬에서 되돌아가고 싶은 커밋으로 이동 git reset {commit_id} # commit_id로 돌아감 git reset --hard HEAD^ # 바로 이전 커밋으로 돌아감 2. 되돌아가고 싶은 커밋으로 이동 후 원격 저장소에 강제 push git push -f origin main #git push -f {원격저장소별칭} {원격저장소브랜치} 참조: https://computer-science-student.tistory.. 2023. 2. 4.
[java] next(), nextLine() 차이점 한 개의 문장을 입력 받아 그 속에 가장 긴 단어를 출력하는 코딩테스트 문제를 풀던 중 알고리즘 적으론 문제가 없는데 계속해서 제출하면 오류가 났다. 그 오류의 원인은 문장을 Scanner로 입력받는 곳이었다. 바로, Scanner의 입력을 next()로 받아서 발생한 문제였다. nextLine()으로 고치니깐 문제는 바로 해결되었다. 항상 헷갈리던 이론이라 이 김에 확실하게 정리하고 넘어가려 한다. next(), nextLine() 공통점 String 타입으로 반환한다. Scanner 클래스의 메소드 next(), nextLine() 차이점 nextLine()은 Enter(개행문자)를 치기 전까지 쓴 문자열을 모두 반환한다. 한 줄 단위로 입력을 받기에 \n도 포함한다. 분리자 개행문자 \n이 버퍼에 .. 2023. 2. 3.
[java] 코딩테스트 문법 정리 Long 타입 to int 타입=> intValue 메서드 사용 Long x = 11L; int i = x.intValue(); substring 메소드 : 문자열에서 원하는 부분을 추출 할 때 사용 기본구조 문자열.substring(문자열 시작 번호, 문자열 끝낼 번호) 단, 끝나는 범위의 수는 포함되지 않는다. 즉 1번째에서 3번째까지 읽어들이고 싶다면 substring(1,4)로 해줘야 3번째까지 읽어들임. String str = "abcd"; System.out.println(str.substring(1,2)); // 결과: bc * 그 외에 문자열을 다루는 java 메서드 charAt, indexOf 참고: http://www.dreamy.pe.kr/zbxe/CodeClip/3766960 JAV.. 2022. 8. 31.
[Git] PR Merge 이후 동기화 1. master branch로 이동 git checkout master 2. 원본 저장소(upstream)에서 동기화 git pull upstream master # git pull [원본저장소] [브랜치명] 3. Fork한 나의 원격 저장소에 동기화 내용 반영 git push origin master 4. 로컬 브랜치 삭제 git branch -D [브랜치명] 4-1. 원격 브랜치도 함께 삭제 git push origin --delete [브랜치명] 협업을 위해 git remote 명령어로 원격 저장소에 연결을 할 때 2개의 원격 저장소에 연결해야 한다. 첫번째는 내가 fork하기 전 원본 원격 저장소 ( 보통 upstream , 위에서 흐른다는 의미 ) 두번째는 내가 fork해온 나의 원격 저장소 .. 2022. 8. 22.
[Python] Selenium 명령어 정리 크롬 드라이버 위치 import os os.getcwd() 셀레니움 단일 요소 찾기 find_element from selenium import webdriver from selenium.webdriver.common.by import By URL= "url" driver = webdriver.Chrome(excutable_path='chromedriver') driver.get(url=URL) driver.find_element(By.name, "name") driver.find_element(By.ID, "id") find_element(By.ID, "id") find_element(By.NAME, "name") find_element(By.XPATH, "xpath") find_element(By.L.. 2022. 8. 16.