2023/8월
23-8-9
parkrams
2023. 8. 9. 11:46
728x90
스프링 단축키 꿀팁
alt 두번 누르면 그 창 이
alt +1 프로젝트 창 키고 끄기
▶ 인덴트 : Tab(인덴트), Shift+Tab(인덴트 취소)
인덴트는 들여쓰기를 말한다. Tab키는 들여쓰기를 Shift+Tab은 들여쓰기 취소를 할 때 눌러주면 된다.
▶ 자동 인덴트 : Ctrl+Alt+I
코드 전체에 자동 인덴트를 적용하고 싶다면 Ctrl+A키를 눌러 코드 전체 영역을 선택해 주고 그 다음 Ctrl+Alt+I키를 눌러주면 된다.
▶ 사용처 찾기 : Alt+F7(찾기), Ctrl+B(빠른 찾기)
함수를 사용하고 있는 사용처를 찾을 때 Alt+F7(찾기)키 혹은 Ctrl+B(빠른 찾기)키를 눌러주면 된다.
Alt + insert -> 겟셋 같은 소스 검색
▶ 꿀 팁 : Ctrl + shift + enter ( 자동 닫기, 괄호 완성 기능? 애매 하다 싶을 때 눌러주면 자동 마무리)
▶ 세팅 창 : Ctrl + alt + s
▶ 변수명 한번에 바꾸기 : shift + f6
▶ 메소드 안에 들어갈 변수명 확인 : Ctrl + p
▶ 람다로 변환 : alt + enter -> Replace with lambda
▶ Refactor This : Shift + Ctrl + alt + T
▶ lnline Method : Ctrl + alt + N
▶ Test 클래스 생성 : Ctrl + Shift + T
▶ 값 일괄 변경 : Ctrl + Shift + R
함수 합치는 메서드?
오늘 한 것
공부
깃 데스크탑 체크체크
- 리버트는 커밋 하기 전 시점으로돌린다
- 고로 내가 최근에 작업하던걸로 돌리고 싶다면 history 에서 최근 걸 리버트 하면 된다
4개월 셀프로젝트
- 이 엔티티를 가지고 부서 id를 가지고 확인 할 때
@Id
@Column(name = "DEPARTMENT_NO", nullable = false, updatable = false, insertable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long departmentNo;
@Column(name = "DEPARTMENT_NAME", nullable = false)
private String departmentName; // 부서명
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DEPARTMENT_PARENT_NO", referencedColumnName = "DEPARTMENT_NO")
private Department departmentParentNo; // 상위 부서 no
dto
/**
* 23-8-9
* 부서 수정을 위한 메서드
* **/
public static AdminUdtDepartment toAdminUdtDepartmentDto(Department department){
return AdminUdtDepartment.builder()
.departmentNo(department.getDepartmentNo())
.departmentName(department.getDepartmentName())
.departmentParentNo(department.getDepartmentParentNo().getDepartmentNo())
.departmentDepth(department.getDepartmentDepth())
.departmentFlag(department.isDepartmentFlag())
.build();
}
/** 23-8-9
* 부서 넘버를 받아오기 위한 메서드
* **/
public static AdminUdtDepartment getAdminDepartmentNo(Department department){
AdminUdtDepartment adminUdtDepartment = new AdminUdtDepartment();
adminUdtDepartment.setDepartmentNo(department.getDepartmentNo());
adminUdtDepartment.setDepartmentName(department.getDepartmentName());
adminUdtDepartment.setDepartmentDepth(department.getDepartmentDepth());
adminUdtDepartment.setDepartmentFlag(department.isDepartmentFlag());
// 상위부서가 있을 경우
// 이부분이 빠질경우 Lazy 오류 발생
if(department.getDepartmentParentNo() != null){
adminUdtDepartment.setDepartmentParentNo(department.getDepartmentParentNo().getDepartmentNo());
}
return adminUdtDepartment;
}
- 해당 코드는 정상 코드
위 코드에서 LAZY 예외 발생 한 이유는
엔티티를 바로 사용해서 생기는 문제로
엔티티를 dto로 변환 시켜서 dto에서 모든 처리 하고 entity로 다시 던져주면 lazy 에러가 발생하지 않는다.
보충수업
- 어디팅. jpa 기술
- 게시판에 작성자 추가, 수정날짜 추가
@LastModifiedDate -- 날짜
@LastModifiedBy -- 스트링
- 댓글 엔티티 , 댓글 디티오, 어디팅, 작성자 추가
- 어디팅 엔티티에 시간 포맷팅하니까 안 먹힘..
package com.bochung.auditing;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;
import org.springframework.format.annotation.DateTimeFormat;
import javax.persistence.Column;
import javax.persistence.EntityListeners;
import javax.persistence.MappedSuperclass;
import java.time.LocalDateTime;
/** 23-8-9
* 어디팅에 시간 지정
* **/
@EntityListeners(value = {AuditingEntityListener.class})
@MappedSuperclass
@Getter
@Setter
public class BaseTimeEntity {
@CreatedDate
@Column(updatable = false)
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime regTime; // 등록 시간
@LastModifiedDate
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime updateTime; // 수정 시간
}
운동
- 부상 휴식
궁금한 것
내일 할 것
프로젝트
운동
해결하려고 노력 중
-- 더 공부할 것
-- 모르는 것
공부할 키워드
- 스프링 빈, 스프링 컨테이너, 의존성 주입
- JPA영속성 컨텍스트
- viewResolver
- url /uri-
- HTTP Pro- \tocol
- REST ful
- 다음 차시까지 공부해오실 내용은
- http 프로토콜 (중요 mozila docs 확인할 것)
- [demo 프로젝트] thymeleaf layout 구조 확인 및 공부
7월 넷째 주 키워드
@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
부트스트랩 컴포넌트
fontAwesome - 태그
8월 첫째 주 키워드
http 프로토콜 (중요 mozila docs 확인할 것)
[demo 프로젝트] thymeleaf layout 구조 확인 및 공부
Builder 패턴
@Builder 클래스 레벨에서 사용할 때 @NoArgsConstructor
modelMapper api
자바 기본 자료구조
자바 제네릭
23-8-2
JAVA Optional 객체
th:each, th:data-id
23-8-4
오늘 키워드 입니다
메모리 영역(code, data, heap, stack)
JVM 가비지 컬렉션
728x90