본문 바로가기

반응형

전체 글

(209) GITHUB 방명록
[Flutter] 목록 출력 ListView, 성능 개선 개발/Dart&Flutter / 2023. 12. 12. 안녕하세요 🥳 백엔드 개발자 제임스입니다.오랜만에 글을 작성합니다. 난데없이 '플러터에 대한 내용'으로 인사를 드리네요. 최근에 앱 개발 프로젝트를 진행하고 있습니다. 물론 저는 서버 개발을 담당합니다. 그럼에도 팀이 사용하는 기술에 대해 안다면, 더 좋은 결과를 만들 수 있겠다고 판단하여 이렇게 취미로나마 플러터를 공부하고 있습니다.오늘 소개할 내용은 List 목록을 출력하는 방법 그리고 성능 개선입니다. 최근에 이 부분을 공부하면서 재미와 흥미를 느껴서 이렇게 기록합니다.1) ListView여러 항목을 나열하는 데 사용하는 스크롤 위젯(Widget)입니다. 말 그대로 많은 양의 데이터를 연속적으로 보여줍니다. 예시로 아래와 같이 코드를 작성할 수 있습니다.예시코드 1.즉 ListView가 child..
[프로그래머스/JAVA] Level 2, 땅따먹기 개발/DS&Algorithms / 2023. 5. 22. https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 문제의 자세한 내용은 링크를 확인해 주세요. (Nx4) 크기의 이차원 배열에서 마지막 행까지 모두 내려왔을 때 얻을 수 있는 점수의 최댓값 구하기 단, 같은 열을 연속해서 밟을 수 없습니다. 제한사항 행의 개수 N : 100,000 이하의 자연수 열의 개수는 4개이고, 땅(land)은 2원 배열로 주어집니다. 점수 : 100 이하의 자연수 문제 풀이 1. 첫 번째 풀이, 잘못된 접근 (..
[JPA] N+1 문제와 Query 성능 개선 (Fetch Join) 개발/Spring&JPA / 2023. 5. 11. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 JPA에서 발생하는 N+1 문제에 대해서 알아보도록 하겠습니다. 이 문제는 JPA를 사용할 때 데이터베이스 쿼리를 최적화하지 않아서 발생하는 성능 이슈입니다. 아마 우리는 자주 겪었을 텐데요. 인지하지 못한 채 지나쳤을 수도 있습니다. 한 가지 질문을 해보겠습니다. :) 웹 애플리케이션을 구현하면서, 콘솔에 SQL 쿼리가 본인 생각과 다르게 많은 양이 나간 적이 있을까요? 가령 하나의 데이터를 요청했지만, 2~3개 그 이상의 SQL 쿼리가 던져지는 것처럼 말입니다. (아니면 의문을 가져본 적이 없었나요? 🤣) 이 질문은 N+1 문제와 관련이 있습니다. 이제 이 문제가 무엇이며, 어떠한 해결 방법이 있는지 알아보겠습니다. N+1 문제란? JPA에서 N+1..
[JPA] 도메인 클래스 컨버터 사용하기 개발/Spring&JPA / 2023. 4. 20. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 Spring Data JPA에서 제공하는 도메인 클래스 컨버터에 대해서 알아보겠습니다. 도메인 클래스 컨버터란? 도메인 클래스 컨버터는 Spring Data JPA에서 제공하는 클래스입니다. 해당 클래스는 엔티티의 ID를 엔티티로 변환하는 기능을 수행합니다. 따라서 컨트롤러에서 파라미터로 받는 ID를 엔티티로 바인딩하여 바로 객체로 받아 사용할 수 있습니다. 도메인 클래스 컨버터 사용 전 아래 이미지의 코드는 회원 Rest 컨트롤러입니다. 그 안에는 Get 메서드의 회원 관련된 API가 있습니다. 이 API는 Path 파라미터로 사용자의 ID를 받고, 해당 사용자의 닉네임을 변경한 뒤 응답 메시지를 전송합니다. (보통 트랜잭션은 서비스 계층에서 처리되지..
[트러블 슈팅] '채식이들' 메인 페이지-제품 출력 에러 해결(java.lang.NullPointerException) 개발/Programming / 2023. 4. 16. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 채식이들 쇼핑 서비스에서 발생했던 에러와 해결 과정을 포스팅하도록 하겠습니다. '채식이들' 쇼핑 서비스는 2022년 9월에 협업 프로젝트로 개발했던 서비스입니다. 프로젝트를 진행할 당시에는 에러 없이 성공적으로 배포했다고 생각했습니다. 하지만 웹 사이트에 들어갔을 때, 제품이 출력되어야 하는 메인 페이지에서 불규칙적으로 전체 제품이 출력되지 않는 문제가 발생했었습니다. 문제를 인지하고, 몇 번을 테스트했을 때 로그인 이전에 기능들이 정상적으로 동작하지 않는 것을 확인했습니다. 처음 문제를 접했을 때는 'AWS 서버나 가비아의 저렴한 서비스를 이용한 것이 원인인가?'라는 안일한 생각으로 크게 신경 쓰지 않았습니다. 정말 바보 같은 생각이었습니다. 그 이후..
[JPA] @Transactional과 JPA의 플러시와 변경 감지(Dirty Checking) 개발/Spring&JPA / 2023. 4. 8. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘 다룰 주제는 스프링과 JPA를 다루는 개발자 혹은 백엔드 개발자에게 중요한 내용이 될 수 있겠다고 예상합니다. 그 이유는 실제로 개발을 진행하면서 많이 접하게 되는 개념이기 때문입니다. 저는 이번 내용에 대해서 분석하다 보니, JPA와 트랜잭션에 대해서 보다 더 알게 된 것 같아 굉장히 즐거웠습니다. 오늘 내용을 이해하고, 함께 성장하는 개발자가 되면 좋겠습니다. 설명 전에 가볍게 돌발 퀴즈로 시작하도록 하겠습니다. 내용이 다소 길더라도 천천히 끝까지 읽어주세요! 현재 철수는 [모임 관리 서비스] 개발을 진행하던 중, 모임 생성 기능을 구현하려고 합니다. 해당 기능의 요구사항은 아래와 같습니다. * 모임 생성 기능 요구사항 1) 서비스의 회원이 모임에 필..

반응형