전체 글 (163) 썸네일형 리스트형 제로베이스 팀프로젝트 진행록2 - 기능구현 1주차에 기획문서, erd, api명세서를 확정하고나서 백엔드 내부에서 GitRepo, codeconvention, package구조, pull reqeust md를 공통적으로 합의하고서 개발에 들어가기로 했다. API 명세서 : https://www.notion.so/API-12ab4d82e56880e5b249fc4f538a326a기획문서 : https://www.notion.so/125b4d82e568804797c6c13a1a933c9aERD : https://www.erdcloud.com/d/CaMg2mhPBTcPW7js9 나는 우선 커뮤니티 > 참여기능(redis lock) > 결재기능(redis lock) 순서대로 구현하기로 하였다. 커뮤니티 기능- 크게 어려움이 없었고 작성과 조회시.. 제로베이스 팀프로젝트 진행록1 - 개발기획과 팀프로젝트 팀프로젝트에 들어가며(24.10.21~) 첫주차 프로그램 기획단계에 들어와있는데, 처음부터 개인 프로젝트와 팀 프로젝트는 확연히 다르다는 것을 느낀다. (1) 매일 특정 시간에 만나서 회의를 하며, 매 안건마다 타인의 동의와 의견을 받고서 진행한다.- 개인프로젝트에서는 내가 원하는 시간과 속도로 기획/개발하고서 어떻게 기획할지 심도있게 고민하는 방식으로 진행하였다면 팀프로젝트에서는 현장에서 즉각 즉각 Idea Pitching 형태에 좀 더 가까운방식으로 좀더 깊이있는 고민을 하기에는 어려웠다. (2) 내가 할 수 없는 기술들을 배우고 개발에 적용할 수 있음, 반대로 내가 알고 있는 부분을 다른 사람들에게 적용시켜줄 수 있음.- MSA 설계에 대해서 관심이 있었으나 시도를 해보지 못했는데 MSA에 대해서.. 제로베이스 개인프로젝트 진행록6 - 성능개선 리팩터링/캐쉬 캐쉬도입도입검토기준1. 자주 사용될 것으로 예상되는 데이터2. 변동이 잦지 않을 것으로 예상되는 데이터위의 두가지 기준으로 캐쉬하고자 하는 데이터를 선택하고자 한다. 가장 빈번한 예상쿼리 : Map조회 기능 관련 쿼리 본 어플리케이션에서 가장 자주 사용될 것으로 예상되는 조회는 Map에 대한 조회라고 생각하였다. Map에 대한 조회는 한번 이루어지는 것이 아니라, 최초 Default Map에서 유저의 입맛에 맞게 축척을 변경하던지 Map의 Bounding Box를 변경하여 원하는 위치를 변경하여 여러번 조회하게 된다. Client가 요구하는 Bounding Box가 변경될때마다 DB에서 데이터를 꺼내는 것을 지양하고자 한다. 유저의 방문 유적지 정보를 캐슁로그인 하였을 때 방문한 유적지를 캐쉬에 로딩.. 제로베이스 개인프로젝트 진행록5 - 성능개선 리팩터링/멀티스레드 멀티스레드 도입 도입검토기준1. I/O 대기시간이 큰 것으로 예상되고 I/O대기를 병렬적으로 처리할 수 있는 작업은 멀티스레드로 처리한다.2. Ram 안에 이루어지는 작업의 경우에 특히, Critical Section의 경우 가급적이면 싱글스레드로 처리한다. 멀티스레드 도입검토위와 같은 관점에서, 멀티스레드 도입전 코드는 두가지 파트로 나눌 수 있다. 1번 : 각 For loop마다 HeritagePoint List를 접근하고 이를 활용하여 외부 API를 사용하여 결과를 받는 파트2번 : 1번파트에서 받은 값을 사칙연산을 통해서 원하는 값으로 조정하고 비교하여 최종적으로 최대값을 return하는 연산 2번의 경우 단순한 연산이며 비교를 통해 return값을 결정하는 변수들 Critical Secti.. 제로베이스 개인프로젝트 진행록4 - 기능구현 기능구현 (1) : 외부API데이터 내부DB저장1. XML 데이터를 Javabean으로 변환하여 쓰는 변환하기 : Jackson API를 사용해서 변환하는법 배우기2. x,y좌표를 Point라는 MYSQL에서 인식할 수 있는 데이터 객체로 변경: geometry factory 사용법 배우기3. Point라는 객체를 MYSQL에 전달하기 위해서 필요한 Dependency 추가 : Hibernate Spatial에 대해서 배우기4. whil문을 통해서 외부 API가 더이상 존재하는 레코드가 없을때까지 반복하여 외부 API의 레코드를 entity로 변환하여 repo에 saveAll() 시행 Trouble외부API의 데이터 구성이 불완전하여 여러가지 중복되는 레코드가 존재하여 saveAll() 할 시 Du.. 제로베이스 연습프로젝트 : 매장 테이블 예약 서비스 (3) 최적화 고려 1. Store Rating 커스텀 쿼리 Store의 Rating 칼럼은 ReviewEntity 레코드들의 평균값에 의존하고 있는데, I/O Bound를 고려하여 서버로 전송되는 데이터를 줄이기 위해서 Review의 rating값을 평균값을 내는 작업을 쿼리를 통해서 DB서버 내에서 작동시킴// Custom query to calculate the average rating for a specific store@Query("SELECT ROUND(AVG(r.rating), 1) FROM ReviewEntity r WHERE " + "r.storeEntity = :storeEntity")Double reupdateAverageRating (@Param("storeEntity") StoreEn.. 제로베이스 개인프로젝트 진행록3 - 기능고려/readme/성능최적화 초안 구상 지난 피드백과 회신안녕하세요 밍밍멘토님 상세한 피드백 감사드립니다. 피드백 주신부분에 대해서 답변드립니다. • 우선 일차적으로는 주제의 현실성에 대해서 제가 피드백을 드리긴 했습니다. 다만 제가 상화님의 실력이나 해당 스터디에 투자할 수 있는 시간등을 정확히 알지 못하기 때문에 이전에 드린 피드백 이외에 더 나아가서 피드백을 드리긴 어려울 것 같습니다. 제가 처음에 드린 피드백을 바탕으로 고민해보신 뒤 현재와 같이 범위를 설정하신 것이라면 문제 없을 것이라고 생각됩니다. -> 네, 1~4순위 우선순위대로 구현 진행해보도록 하겠습니다.• 다만 추가적으로 드릴 수 있는 피드백으로는, 현재 알고리즘 학습을 한뒤 학습하신 알고리즘을 서버개발에 녹여내고자 하신것 같은데요, 저는 해당 부분이 서버개발자로서 크게 .. Java 코딩구현 심화 : 스트림,람다식 특수 클래스 : Inner Class내부클래스 : 클래스 in 클래스 (클래스 안에 선언한 클래스) 내부클래스의 종류 : 정적 클래스 (static)OuterClass는정적(static)이 될 수 없습니다. 때문에 정적클래스는 내부클래스만을 지칭합니다외부 클래스와 논리적 관계만 있음, 독립 사용 가능외부에서 직접생성가능 내부클래스의 종류 : 인스턴스 내부 클래스 (non-static)외부 클래스의 인스턴스에 종속적인 내부 클래스입니다. 이러한 클래스는 외부 클래스의 인스턴스가 생성된 후에야 인스턴스화 될 수 있으며, 외부 클래스의 인스턴스 변수 및 메소드에 직접적으로 접근할 수 있는 권한을 가집니다. 주로 외부클래스 인스턴스의 필드멤버처럼 다루어지며, 인스턴스멤버들과의 작업을 위해 만들어짐.외부 .. 이전 1 ··· 7 8 9 10 11 12 13 ··· 21 다음 목록 더보기