⌛지연 로딩과 영속성 컨테스트
·
TIL
지연 로딩💡지연로딩을 사용하기 위해서는 영속성 컨테스트가 필요 → 해당하는 메소드에 Transaction 환경 설정 → 성능을 높이기 위해 readOnly = true 옵션을 걸음1. 지연 로딩(Lazy Loading)을 사용하려면 영속성 컨텍스트가 필요지연 로딩은 객체를 실제로 사용할 때까지 데이터를 로딩하지 않는 방식JPA에서는 이 방식이 영속성 컨텍스트(Persistence Context)에서 관리되는 엔티티 객체에 대해 적용영속성 컨텍스트가 엔티티를 관리하는 동안에만 지연 로딩이 정상적으로 작동즉, 트랜잭션 범위 내에서 엔티티를 로딩해야 하므로 영속성 컨텍스트가 필요2. 해당하는 메소드에 Transaction 환경 설정지연 로딩은 영속성 컨텍스트가 활성화되어야 하므로, 트랜잭션 범위 내에서 동작..
🤯 첫 PR
·
TIL
혹여나 잘 못 될까봐 너무 떨려 미쳐버리는 줄팀원분들께 도움을 요청해서 처음 PR을 해봤다. 다음에 혼자 할 때, 참고할 수 있도록 기록을 남겨보겠다.우선! 내가 잘 못 알았던 것! GitHub Desktop으로도 PR을 날릴 수 있는 줄 알았는데 -> 아님!Commit과 Push를 편하게 하기 위함이였다!Commit 메세지 작성빨간 박스에 변경된 파일들 확인하고 Commit 메세지를 깃 컨벤션에 맞춰서 작성 후Push가 생기면 클릭GitHub 들어가서 Repository로 이동해서 Pull&Request 진행컨펌이 되면 Merge 진행 끝! 아찔한 사건 발생...develop으로 merge 했어야 했는데.. main으로 해버렸다..(기절팀원 분께서 revert해주셔서 다시 push하고 PR요청 함🥲 ..
🧶QueryDSL을 알아보자
·
TIL
QueryDSL이라.. 이 녀석도 처음임..ㅎ 우선 세팅을 먼저 진행해보자!Gradle 추가//QueryDSL의 버전 //plugin 보다 앞에 둘 것buildscript { ext { queryDslVersion = "5.0.0" }}dependencies { //QueryDSL JPA 라이브러리 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' // QueryDSL APT(Annotation Processing Tool) annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" //Jakarta..
🐋Docker 환경구축
·
TIL
1. spring-boot 프로젝트 생성패키지, 파일 임시 생성2. application.properties 파일# MySQL 데이터베이스 연결 설정spring.application.name= 애플리케이션 이름spring.datasource.url= jdbc:mysql://localhost:3306/{mydatabase}spring.datasource.username= 사용자 이름spring.datasource.password= 데이터베이스 접근 비밀번호spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver# Hibernate JPA 설정spring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=truespri..
🤯Git 관리 어떻게 하는 건데
·
TIL
여태까지 그냥 브랜치 하나 따로 만들어서 간단하게 commit 내용 적고 push만 해봤다.작업하면 그저 main과 merge만 해봤다.첫 프로젝트가 시작되고 git flow를 처음으로 듣고 멘붕이 왔다.어떻게 하는거지... 그러던 중에 Git & PR특강 소식이💟 따라서오늘있었던 Git & PR 특강의 내용을 정리 해보고자 한다.먼저, Git 이란?코드 형상 관리 시스템(VCS)주요 목적은 코드를 형상 관리하고 협업하기 위함 Git workflowRemote : GitHubLocal : PCWorking directory : 작업공간Staging area : 로컬 레포에 반영하기 전, 검토 공간Local repo : 컴퓨터 저장소에 저장Git-flowgit을 어떻게 적용할 건지브랜치 전략협업 및 버전..
🐋Docker
·
TIL
도커란?애플리케이션을 패키징 할 수 있는 툴컨테이너라고 불리는 작은 소프트웨어 유닛 안에 애프리케이션과 그에 필요한 시스템 툴, 모든 Dependencies를 하나로 묶어서 쉽게 배포하고 안정적으로 구동할 수 있게 도와주는 툴애플리케이션을 구동하는 데 필요한 모든 것들을 Docker Container에 담아 놓음VM과 차이점운영체제를 포함하지 않음컨테이너 엔진이 설치된 HostOS를 공유함📌컨테이너 엔진 중에서 가장 많이 쓰이는 것이 DockerDocker컨테이너를 만들고 배포하고 구동컨테이너 생성Dockerfile 생성 → Image를 만듦 → Container를 구동Dockerfile컨테이너를 어떻게 만들어야 하는 가에 대한 설명서(레시피)Copy Files어플리케이션 구동을 위해 꼭 필요한 파일은..
🚪 카카오 소셜 로그인 세팅
·
TIL
1. Kakao developers 사이트 접속하여 회원가입 진행 Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com2. 상단 [내 애플리케이션] 메뉴 클릭3. [애플리케이션 추가하기] 버튼 클릭4. 팝업 창 정보 입력앱 아이콘 [파일 선택]앱 이름회사명동의 체크 박스 : 체크5. 추가한 애플리케이션 생성됨 → 더블클릭6. 레프트 메뉴 “플랫폼” 클릭 →  [Web 플랫폼 등록] 클릭http://localhost:8080/api/user/kakao/callback활성화 : [ON]으로 활성화 시켜 줌7. 사이드 메뉴 ) "제품설정 > 카카오 로그인 > ..
스터디) 공유하면 좋을 내용
·
정보처리기사
논리·비트연산자1. 논리 연산자&& : 둘 다 참(True)이어야 참(True)|| : 하나만 참(True) 이어도 참(True)  주의 할 점!!거짓 && 조건식 : 좌측에서 먼저 거짓이 나오면 어차피 거짓이기 때문에 우측 조건식을 실행을 하지 않음참 || 조선식 : 좌측에서 먼저 참이 나오면 어차피 참이기 때문에 우측 조건식을 실행을 하지 않음관련 문제#include int main(){ int x=10,y=20; if(x++ >= 10 && y++ > 20){ printf("T=x:%d,y:%d",x,y); } else{ printf("F=x:%d,y:%d",x,y); } return 0;}증감연산자 주의!더보기x++ >= 10 이 참이지만 y++ > 20 ..
스터디) 2023 정처기 실기 3회 프로그래밍 풀기
·
정보처리기사
2023 정처기 실기 3회 정리https://chobopark.tistory.com/453 문제 복원 블로그문제1. 상속, 오버라이딩public class main{ public static void main(String[] args) { A b = new B(); b.paint(); b.draw(); }} class A { public void paint() { System.out.print("A"); draw(); } public void draw() { System.out.print("B"); draw(); }} class B extends A { public void pai..
스터디) 2023 정처기 실기 2회 프로그래밍 풀기
·
정보처리기사
2023 정처기 실기 2회 정리https://chobopark.tistory.com/420 문제 복원 블로그문제1. 1차원 배열 로테이션int main(void) { int n[5]; int i; for (i = 0; i 입력값이 54321일 경우 출력값이 43215로 출력되어야 한다.더보기n[(i+1) % 5] 범위를 벗어나지 않기 위해 나머지 연산자(%) 이용 문제2. 처리조건 주의public class Problem{ public static void main(String[] args){ m = 4620; a = ( ); b = ( ); c = ( ); d = ( ); Syste..