본문 바로가기

Back-End/Spring11

[리팩토링] 코드 리팩토링이란 ? 서론 과거에는 기능구현이 더욱 중요했지만, 현재는 코드 가독성의 중요성이 점점 더 부각되고 있다. 과거 프로젝트를 리팩토링하며 리팩토링에 대한 개념을 정리하고자 한다. 리팩토링이란 ? ? 리팩토링이란 코드의 구조와 디자인을 개선하는 작업이다. 기능에는 영향을 주지 않으면서 가독성을 높이고 유지보수를 용이하게 만드는 것이다. 즉, 코드의 품질을 향상시키고 버그를 줄이며, 향후 개발과 유지보수를 보다 효율적으로 할 수 있다. 리팩토링 과정 1. 코드의 이해 -> 코드의 기능, 구조, 의존성 등을 판단하여 어느 부분을 개선해야 할지 판단해야 한다. 2. 테스트 작성 -> 리팩토링 전,후 에 테스트 결과가 변함이 없어야 한다. 3. 작은 단위로 분리 -> 큰 변경사항을 한번에 적용하지 않고, 쪼개서 적용하며 테.. 2023. 7. 22.
[spring] 예외처리? Exception Handling? 개발자라면 누구나 한번쯤 예외처리에 대해 깊게 공부해야 할 때가 온다. 단순히 throw, try-catch로 예외처리 했던 과거와는 다르게 좀 더 깊게 알아보자. 에러는 크게 두 종류로 나뉜다. Error 해결(?) 할 수 없는 에러이다. OutOfMemoryError, AssertionError, StackOverflowError, IOError, NoClassDefFoundError 종류는 위와 같이 대표적인 것들이 있다. Exception 예방할 수 있는 에러이다. 실무에서 가장 중요한건 예외처리?.. 엄청난 성능을 가진 로직이나 기똥찬 코드도 에러 한방이면 무용지물이다.(고객의 신뢰도 하락 ..) 예외처리는 기본중에 기본이고, 최대한 여러 방면으로 방어해야 한다. 2022. 8. 17.
[JPA] JPA Repository 메소드로 쿼리없이 코딩 JPA Repository에서 쿼리를 이용하는 방법은 여러가지가 있다. 1. JPQL 이용 2. nativeQuery 사용 3. Querydsl 사용 4. 메소드 명명만으로 쿼리 생성 4번의 방법을 이용한 JPA 사용법이다. 검색 메서드 1). findAll() DB에서 전체 값을 list로 불러올때 사용한다. 2). findOne() primary key로 값을 1건 조회할 때 사용한다. 3). findByXX => SQL Where절이라고 생각하자. findBy뒤에 우리가 정의한 Entity의 이름을 붙이면된다. Entity의 이름의 첫글자는 대문자로 하며, id를 조건으로 검색한다면 findById(int id) 로 검색하면 된다. 여기서 여러개의 조건을 걸고싶다면...? And조건 findById.. 2022. 8. 9.
[JPA] 필드와 컬럼 매핑 어노테이션 정리 @Column -> 컬럼 매핑 - name -> 필드와 매핑할 테이블의 컬럼 이름 - insertable,updatetable -> 등록, 변경 가능 여부 - nullable(DDL) -> null 값의 허용여부를 설정 - unique(DDL) -> @Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용 - columnDefinition(DDL) -> DB 컬럼 정보를 직접 줄 수 있다. - length(DDL) -> 문자 길이 제약조건, String 타입에만 사용 - precision, scale(DDL) -> BigDecimal 타입에서 사용한다.(Long도 사용 가능), precision은 소수점을 포함한 전체 자릿수를, scale은 소수의 자릿수다... 2022. 8. 1.
[JPA] ddl-auto 주의 및 실무 적용 ddl-auto 종류 hibernate.ddl-auto : 1. create -> 기존테이블 삭제 후 다시 생성(DROP + CREATE) 2. create-drop -> create와 같지만 종료시점에 테이블 DROP 3. update -> 변경된 부분만 반영(운영DB 적용 x) 4. validate -> Entity와 Table이 정상 매핑되었는지만 확인 5. none -> 사용하지 않음(사실상 없는 값이지만 관례상 none이라고 한다.) 주의사항 -> 운영 장비에는 절대 create, create-drop, update 사용 X -> 개발 초기 단계는 create 또는 update -> 테스트 서버는 update 또는 validate -> 스테이징과 운영 서버는 validate 또는 none -> .. 2022. 8. 1.
[spring boot] 간단한 방명록 만들기 [2편] DTO > Entity 변환 서비스 계층에서는 파라미터를 DTO 타입으로 받기 때문에 이를 JPA로 처리하기 위해서는 entity 타입의 객체로 변환해야 한다. GeustbookService public interface GuestbookService { //글등록 Long register(GuestbookDTO dto); //DTO를 Entity로 변환 default Guestbook dtoToEntity(GuestbookDTO dto){ Guestbook entity = Guestbook.builder() .gno(dto.getGno()) // java 8버전부터는 인터페이스의 실제 내용을 갖는 .title(dto.getTitle()) // 코드를 default라는 키워드로 생성할 수 있다. .con.. 2022. 6. 16.