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