starUML column 안보이는 경우
·
여러가지 모르는 지식들
나도 column 추가하고 싶었는데,,, 나한테는 class diagram밖에 안보였다.아래로 해결!entity가 보입니다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 하하하!!!!!!!!!!!!!!!!!!!!!!!!!!!
git push author 변경
·
Error
더보기 프로젝트 중 소스트리로 깃을 사용할 때 문제가 생겨 이것저것 건드리다가 다른 계정으로 git push를 했다는 것을 지금 발견했다...어쩐지 이상하더라. 고쳐봅시다 23.09.20 개인 repo에서 test후에 고치려고했는데... author를 변경하면 커밋한 날짜까지 함께 업데이트 되기 때문에 다른 분의 커밋 시간대까지 바뀌어버려서 안(못)하기로 했다! 그래도 언제 쓰일지 모르니 방법을 정리해놓도록하겠다. 1. git rebase -i 커밋id ! 수정하고자 하는 커밋 전에 있는(꼭 직전이 아니어도 된다) 커밋 아이디를 입력하자.! 1번처럼 입력할 경우 입력한 커밋 id 다음 커밋부터 수정할 수 있기 때문이다. 2.(1) 1번의 결과로 커밋 log 마냥 커밋들이 좌르륵 뜬다. 2.(2) i를 누..
멀티쓰레드
·
여러가지 모르는 지식들
요청- 응답 시 서블릿 객체를 호출하여 비즈니스 로직을 수행한다. 그런데 이 서블릿 객체를 누가 호출해주는가? 바로 쓰레드가 호출해준다. 쓰레드란, 애플리케이션 코드를 하나하나 순차적으로 실행하는 것을 말한다. 자바 메인 메서드를 처음 실행한다면 main이라는 이름의 쓰레드가 실행된다. 이 쓰레드라는 것이 없다면, 애플리케이션 실행이 불가능하다. - 단일 요청 시: 연결에 쓰레드를 할당하여 쓰레드로 서블릿을 호출한다. - 다중 요청 시: 요청의 처리가 끝날 때까지 다음 요청은 순서를 기다려야한다. 문제는 처리 지연 시 발생한다. 만약 요청1의 처리가 오래 지연된다면, 요청2는 요청1의 처리 완료까지 순서를 기다리다가 타임아웃이 되고 요청1도 그대로 타임아웃이 되는 불상사가 발생할 수 있다. 그렇다면 이 ..
400 에러 - 필드가 하나인 DTO의 기본 생성자 부재...
·
Error
결론부터 말하자면 이는 역직렬화와 관련된 오류이다.Jackson 라이브러리가 어떻게 직렬화와 역직렬화를 수행하는지 제대로 알아보지 않은 나의 잘못이다....ㅠ 나에게는 다음과 같은 코드가 있었다.  // == 컨트롤러 == //@PostMapping("/comments/{id}")public Result changeComment(    @PathVariable(name = "id")Long id,    @RequestBody ChangeCommentRequest request, Authentication authentication){    //...} // == DTO == //@Getter@AllArgsConstructorprivate static class ChangeCommentRequest {St..
조회 기능 구현 시 JsonMappingExeception 오류
·
Error
조회로 받아오는 객체의 필드에 양방향 연관관계가 있는 필드가 있지 않은 지 확인해봅시다. 예를 들어 @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) //@ToString(of = {"id","username"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private String userId; private String userPassword; @Enumerated(value = EnumType.STRING) private Grade grade; @OneToMany(mapped..
Optional
·
JAVA
optional이란_ null이 올수 있는 값을 감싸는 Wrapper클래스이다. 옵셔널로 받는 이유는 상황에 따라서 조회를 하면 무조건 리턴되는 데이터가 있는 것이 아니기 때문이다. 리턴된 데이터가 없으면 에러를 내줘야 하는 경우도 있고, 리턴된 데이터가 없으면 임의의 데이터를 추가해주아야 하는 경우도 있다. 따라Optional이 필요한 것이다.  @Service@RequiredArgsConstructor@Transactional(readOnly = true) // no flushpublic class MemberService {private final MemberRepository memberRepository; @Transactional public Long saveMember(Member membe..
intellij 단축키
·
여러가지 모르는 지식들
ctrl+shift+enter 문장 마무리 자동완성 ctrl+p alt+insert : generater 생성(여러모로) psvm+tab: public static void main(String[] args) 자동완성 sout :system.out.print 자동완성 alt+enter: implements 자동완성 alt+shift+enter: import? shift+f: rename ctrl+x: 잘라내기 ctrl+z: 뒤로가기!! ctrl+shift+z: 앞으로 가기 ctrl E enter : 이전 실행화면(파일)으로 이동 ctrl alt p : 메소드 파라미터로 뽑기 ctrl p : 메소드 파라미터 타입 보기~! ctrl+alt+v: 자동으로 받아주기 완성 null일 가능성이 있으면 optiona..
abstract class
·
JAVA
A 클래스, B클래스는 공통되는 메서드를 가지고 있다. 즉 공통적인 기능을 가지고 있다. 예를 들어, 각 클래스에 해당 클래스의 인스턴스가 생성되는 시각을 기록하는 setCreateDate() 메서드가 있다고 해보자. 프로젝트 내에 있는 모든 클래스의 인스턴스가 생성될 때의 시각을 기록하도록 하고 싶다면, 나는 모든 클래스에 해당 메서드를 작성해주어야한다. 이러한 반복은 추상 클래스로 해결할 수 있다. 추상 클래스란 무엇일까?abstract class: 일반 메서드와 추상 메서드를 가진다. 일반적인 클래스와 다르게 인스턴스를 생성할 수 없다.public abstract class BaseTimeEntity { private LocalDateTime createDate; public Ba..