전체 글(78)
-
[프로그래머스] 점찍기
프로그래머스 문제 좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다. 원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...), y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다. 원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다. 정수 k와 원점과의 거리를 나타내는 정수 d가 주어졌을 때, 점이 총 몇 개 찍히는지 return 하는 solution 함수를 완성하세요. 제한사항 1 ≤ k ≤ 1,000,000 1 ≤ d ≤ 1,000,000 이 문제를 풀기 위해서 원 내부 점이 몇개인지 세도록 구현하였습니다. a^2 + b^2
2023.04.07 -
[최종 프로젝트] 마무리
저번주에 최종 프로젝트가 마무리되었습니다. 게임 매칭 서비스를 제작하면서 많은 어려움이 있었습니다. 1. 시작할 때 CI/CD가 뭔지 왜 필요한 지 몰랐습니다. 2. 서버 아키텍처에 대한 개념이 거의 없어 서비스에 대한 큰 그림을 그리지 못했습니다. 3. Transactional에 대해 정확히 알지 못해 오류를 해결하는데 힘들었습니다. 4. 작성한 코드 가독성이 높지 않았습니다. 5. 유지보수를 생각하면서 코드를 짜지 않았습니다. 1,2번은 마지막 배포단계에서 겨우 느끼게 되었습니다. 이제는 서버의 구성이 어떻게 되는지 개략적으로 느낄 수 있습니다. 또 프론트를 연결해 테스트할때부터 처음보는 에러와 문제들이 발생했습니다. 이때 내가 짠 코드도 길어지고, 클래스가 많아지니 헷갈리기 시작했습니다. 이때서야 ..
2023.03.24 -
[최종 프로젝트] Deserialize Json
프론트에서 서버로 매너점수를 평가하는 기능에서 Json을 역직렬화하지 못하는 문제가 발생하였습니다. 에러 메세지는 아래와 같이 나왔습니다. JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`) evaluationForm 클래스에 있는 request: List 이 List여서 서버에서 deserialize 할 수 없다고 생각하였습니다. 다른 필드인 matchingId: Long 은 잘 받고 있어서 그렇게 생각하게 되었습니다. 따라서 직접 deserialize하는 방법을 찾게 되었습니다. 처음에는 deserialize 클래스와 Mapper 클..
2023.03.16 -
[최종 프로젝트] 매칭 멤버 조회 DTO 리펙토링
서비스에 2인/5인 매칭 유형이 있습니다. 각각에 대한 DTO를 만들어서 서버에서 멤버 정보를 내보냈는데, 하나로만 사용하자는 피드백이 있었습니다. 당시 백엔드에서 List로 정보를 주다가 프론트에 띄우는 방법을 찾지 못해 상당히 원시적인 방식으로 해결했었습니다. /** * 2인 매칭 DTO */ @Getter public class MatchingLog2Dto { private String nickname; private Long id; private Long matchingId; public MatchingLog2Dto(Member member, Long matchingId) { this.nickname = member.getProfile().getNickname(); this.id = member...
2023.03.07 -
[최종 프로젝트] 프론트 작업
백엔드 개발자 지망생으로서 프론트 작업하는 일이 정말 싫었습니다 하지만 누군가는 해야하는 상황에서 차분히 진행해 나가고 있습니다. 현재 제가 만든 페이지는 다음과 같습니다. 매칭 페이지 전반(신청, 거절, 수락) 멤버 페이지 전반(프로필 수정, 보기, 다른 유저 프로필 보기, 내 매칭 보기, 내 친구 보기, 친구 신청 목록 보기, 내 게시글 보기) 관리자 페이지 전반(유저, 게시글, 댓글 관리-조회, 삭제, 페이징) 지금은 매너점수 평가하는 페이지와 기능들을 수정하고 있습니다. 백엔드에서는 이미 구현되었었지만, 막상 프론트로 하려니 점차 복잡해져서 백엔드를 수정해보는 상황에 있습니다. 프론트를 잘한다면 주어진 상황에 맞춰 잘 띄울 수 있을 것 같지만 그러지 못하기에 주어진 환경에서 최선을 다해볼 예정입니..
2023.03.03 -
[최종 프로젝트] ajax를 통한 MultiPartFile 업로드
주말간 멤버와 매칭 파트, 메뉴바 프론트 파일을 만들었습니다.(JS 제외) 이후에 각자 파트별로 프론트 파일을 가져가 백엔드와 연결하는 작업을 이번주부터 시작하고 있습니다. 타임리프가 아닌 JS의 ajax를 통해 연결하는 것이 생소하여 처음부터 난항을 겪었습니다. 특히, 유저가 내가 쓴 게시물을 보는 페이지를 구현할 때 조금 헤맸지만 아래의 코드같이 해결했습니다. $(document).ready(function () { ... $.ajax({ type:"GET", url:"http://localhost:8080/api/profile/boards", headers:{ "Content-Type": "application/json", "Authorization":localStorage.getItem("acce..
2023.02.22