반응형 분류 전체보기242 gradle dependencies 의존성 관리 알아보기 build.gradle 내용 중 의존성 관리 부분 알아보기 dependencies 에는 프로젝트에 필요한 라이브러리를 정의해놓는다. ex) dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' runtimeOnly 'mysql:mysql-connector-java' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' annotationProcessor 'org.. 2023. 1. 29. Git 명령어 간단 정리! git init 저장소 초기화를 수행하며 .git 이라는 새 디렉토리가 생성된다. git clone 저장소를 복제한다. git add 스테이징 영역에 새 파일이나 변경사항을 추가한다. git status 저장소의 현재 상태를 보여준다. 스테이징 영역에서 대기중인 파일을 보여준다. git log 저장소의 커밋 기록을 보여준다. git reflog 저장소에서 브랜치 및 참조 업데이트의 전체 기록을 볼 수 있다. git diff 코드의 현재 버전과 마지막으로 커밋된 버전을 비교한다. git branch 새 브랜치를 만들거나, 특정 브랜치로 전환하거나, 특정 브랜치로 삭제한다. git merge A브랜치의 변경사항을 B브랜치로 병합한다. git reset 커밋을 취소하고 이전 커밋으로 이동할 수 있다. 커밋을 .. 2023. 1. 29. JPA ddl-auto 옵션 종류 hibernate는 시작할 때마다 맵핑 설정을 DB 스키마에 반영하는 작업을 한다. 옵션을 선택할 수 있다. application.yml jpa: hibernate: ddl-auto: validate 1. none 사용하지 않음 2. create 기존 테이블 삭제 후 테이블 생성 스테이징, 운영환경에서는 절대로 사용하면 안된다. / 개발 환경에서 사용한다. 3. create-drop 기존 테이블 삭제 후 테이블 생성 / 종료 시점에 테이블 삭제 스테이징, 운영환경에서는 절대로 사용하면 안된다. 4. update 도메인 객체에 맞춰 변경된 스키마 적용 컬럼 추가만 반영된다. (지우는 것은 반영되지 않는다.) 스테이징, 운영환경에서는 절대로 사용하면 안된다. / 개발 환경에서 사용한다. 5. validate.. 2023. 1. 25. Spring 웹 계층 Web Layer 컨트롤러 등의 뷰 템플릿 영역 사용자의 응답에 대한 처리, 사용자 권한 인증 처리 Service Layer 트랜잭션에 대한 경계 역할 @Transactional Controller와 DAO의 중간 영역 Repository Layer DAO DTOs 계층간 데이터 교환을 위한 객체 뷰에서 사용될 객체나 Repository Layer에서 결과로 넘겨준 객체 등 Domain Model 비즈니스 로직을 처리하는 영역 도메인이라 불리는 대상을 이해할 수 있도록 단순화 시킨 것 ex) 택시 앱의 도메인 -> 배차, 탑승, 요금 등 @Entity 2023. 1. 25. [Spring Boot] DB 관련 용어 정리 ORM(Object Relation Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑하는 방법 ORM을 이용하면 쿼리문 작성이 아닌 코드로 데이터를 조작할 수 있다. 장점 데이터베이스 쿼리를 객체지향적으로 조작할 수 있다. 쿼리문 작성 양이 줄어들어 개발 비용이 줄어들고, 가독성이 높아진다. 매핑된 객체는 독립적으로 작성돼있어서 재사용 및 유지보수가 편리하다. 데이터베이스에 대한 종속성이 줄어든다. 데이터베이스 교체 시 리스크가 적다. 단점 ORM만으로 온전한 서비스 구현에는 한계가 있다. 복잡한 코드를 정확한 설계 없이 ORM 구성하면 속도 저하 등의 문제가 발생할 수도있다. 애플리케이션의 객체 관점과 데이터베이스 관계 관점의 불일치가 발생한다. 설계 방법에 따라 데이터베이스에 있는 .. 2023. 1. 25. spring 포트 번호 관련 에러 - Only one usage of each socket address (protocol/network address/port) is norm ally permitted. spring 프로젝트를 실행시키려는데 에러가 발생한다 !!! Only one usage of each socket address (protocol/network address/port) is norm ally permitted. CMD 관리자 권한 실행 netstat -ano | findstr :3306 3306 포트번호가 이미 실행중이라서 실행이 되지 않는듯하다. 윈도우용 DB포트 ⚡⚡⚡ 도커용 DB포트 해결법 포트를 죽인다. taskkill /f /pid {피드번호} 다시 도커 실행 docker-compose -f docker-compose-local.yml up 2023. 1. 25. 템플릿엔진 Handlebars 라이브러리 현재까지 꾸준히 업데이트 되고있는 템플릿 엔진은 Thymeleaf, Handlebars 이다. Handlebars - 간단한 문법 - 로직 코드를 사용할 수 없어 view 역할에 제한된다. 1. 의존성 추가 build.gradle implementation 'pl.allegro.tech.boot:handlebars-spring-boot-starter:0.3.4' 2. 인텔리제이 내 Handlebars 플러그인 추가 3. 메인 페이지 생성 src/main/resources/templates 하위에 main.hbs 생성 4. Controller 생성 prefix: src/main/resources/templates suffix: .hbs src/main/.../controller/FormController... 2023. 1. 25. Java 거리 계산 알고리즘 - Haversine formula 하버사인 공식 두 위도, 경도 사이의 거리를 계산하기 위한 알고리즘 지구를 완전한 구 라고 가정하고 계산하기 때문에 0.5% 오차가 발생할 수 있다. // A 위도, A 경도, B 위도, B 경도 private double calculateDistance(double lat1, double lon1, double lat2, double lon2) { lat1 = Math.toRadians(lat1); lon1 = Math.toRadians(lon1); lat2 = Math.toRadians(lat2); lon2 = Math.toRadians(lon2); double earthRadius = 6371; //Kilometers return earthRadius * Math.acos(Math.sin(lat1).. 2023. 1. 24. Java/Spring 공공 기관 데이터 셋업 하기 1. 직접 sql 생성하여 저장한다. https://www.data.go.kr/data/15065023/fileData.do CSV 참고 서울특별시 성북구_약국현황_20200101 서울특별시 성북구 내 약국현황에 대한 데이터로, 약국명, 주소, 약국 전화번호, 기준일자, 위도, 경도, 행정동 의 데이터를 제공합니다. www.data.go.kr 도커 컨테이너 생성시 초기 데이터 만들기 디렉토리 /docker-entrypoint-initdb.d/ 에 .sql 또는 .sh 파일 넣어두면 컨테이너 실행 시 실해된다. /database/init/xxx.sql 2. 데이터를 유지하기 위해 validate로 변경한다. application.yml create - 기존 데이터를 모두 drop시키고 다시 create 한.. 2023. 1. 24. 이전 1 ··· 9 10 11 12 13 14 15 ··· 27 다음 728x90 반응형