230304

JINSEON YE·2023년 3월 4일

TIL

목록 보기
85/88
//프로필 수정하기

$('#btn-save').on('click', editProfile);

function editProfile() {
    var file = $('#img')[0].files[0];
    console.log(file)
    var data = {"profileImg": $('#profileImg').val(),
                "nickname": $('#nickname').val(),
                "comment": $('#comment').val()
                };
    console.log(data)
    var formData = new FormData();
    formData.append('file', file);
    formData.append('dto', new Blob([JSON.stringify(data)] , {type: "application/json"}));
    console.log(formData)

    $.ajax({
        type: "POST",
        url: `/api/users/profile`,
        headers: {
            "Authorization": getCookieValue('Authorization')
        },
        data: formData,
        processData: false,
        contentType: false
    }).done(function (file) {
        $('#result-image').attr("src", file);
    }).fail(function (error) {
        alert(error);
    })
}

이슈 설명

신규 유저를 생성할 때 프로필이 기본 생성되는데, 그 초기 값을 기본값으로 입력하게끔 시도하였습니다.

상황 & 시도

아래와 같이 기본값을 설정해주었습니다. 그런데 생성된 유저에서 프로필을 꺼내와서 값을 넣어주는 로직이 비효율적이라고 생각했습니다.

프로필 생성자에서 기본값을 설정해주도록 시도하였습니다.

에러 발생

java: constructor profile() is already defined in class com.example.party.user.entity.profile 와 함께 아래와 같이 오류가 발생했습니다.

해결

@NoArgsConstructor 와 새로 생성한 멤버변수를 갖지 않는 생성자가 충돌하여 발생한 오류였고,

@AllArgsConstructor으로 대체해주었습니다.

참고자료

https://yuja-kong.tistory.com/99

profile
백엔드 개발자

0개의 댓글