일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 이영직
- React Native
- react
- 자료구조
- 휴대폰 기기
- 백준 1992
- 원복
- BFS
- 티스토리챌린지
- service 테스트
- multipart upload
- web view
- 구현
- 상속 관계 매핑
- 노마드코더
- React Natvive
- bfs dfs
- Project Bee
- 해외 대외활동
- 버튼 활성화
- 완전탐색
- Navigation
- 오블완
- ReactNative
- FlatList
- 창의충전소
- 비트마스킹
- 경우의 수
- 폴더구조
- springboot
- Today
- Total
유미의 기록들
💡 배경인프런과 같이 튜터가 강의를 등록하고 유저가 결제를 통해 강의를 조회할 수 있는 서비스를 담당했다. 대용량 영상 파일을 AWS S3에 업로드 하기 위해, 초기에는 MultipartFile업로드 방식을 사용했으나, 150MB이상 파일을 업로드할 때, 속도가 느려지는 문제가 발생했다. 성능 개선을 하고자 구글링 하던 중, 파일을 여러 부분으로 나눠 병렬로 업로드하는 AWS S3 MultipartUpload 방식이 있다는 것을 알게 되어 이를 도입하고자 하였다 📝 S3에 파일 업로드 하는 방식S3에 파일을 업로드 하는 방법에는 3가지가 있다1. Stream 업로드HttpServletRequest의 `InputStream`을 이용해서 AWS S3에 바로 파일을 전송하는 방식파일의 바이너리 전체를 ..
💡 배경public Party(String title, String contents, PartyStatus status, Category category, User user) { this.title = title; this.contents = contents; this.status = status; this.category = category; this.user = user;}Party newParty=new Party(title,contents,status,category,user); 코드 리팩토링을 진행하면서 지금까지 객체를 인스턴스화 할 때 직접적으로 생성자를 호출하여 생성하였는데, 개발자가 구성한 별도의 `static` 메소드 를 통해 간접적으로 객체 생성을 유도하는 ..
💡 배경최종 프로젝트를 하면서 스터디 파티 모집 게시글, 개발 커뮤니티 게시글, 프로젝트 게시글에 공통적으로 이미지 첨부 파일을 추가해야 하는 요구사항이 있었습니다. 초기에는 하나의 이미지 첨부 파일 테이블에 모든 데이터를 넣는 단일 테이블 전략으로 설계했습니다. 하지만 테이블의 크기가 커지게 되고, NULL값을 가지는 속성이 많아지는 단점이 있었습니다. 따라서 다른 테이블 전략이 없는 지 찾아보았습니다 📝 상속 관계 매핑관계형 데이터베이스에는 객체에서의 상속 관계가 없고, 객체의 상속과 유사한 슈퍼타입 / 서브타입 관계를 매핑하는 상속 관계 매핑이 존재한다슈퍼타입과 서브타입의 논리모델을 실제 물리 모델로 구현하는 방법은 3가지가 있다. 각 구현 방법의 장단점을 비교해 보려고 한다. 1. 단일..
레거시 코드(Legacy Code)란?나를 포함한 모든 개발자가 기존에 개발했던 코드 잘 작동되는 코드여도 오래된 기술을 사용할 수 있고, 현재는 사용되지 않는 코드들도 있다. 결합도가 높거나, 테스트 코드가 없거나 가독성이 떨어지는 등의 특징들을 가지고 있다 💡 목표- 레거시 코드의 리팩토링을 통해 코드의 가독성과 유지보수성을 높이고 개발 생산성을 향상시킬 수 있다- 복잡한 구조를 단순화하고, 최신 기술과 패턴을 적용함으로써 확장성과 유연성을 확보할 수 있다- 성능을 개선하고, 보안성을 강화할 수 있으며, 변경에 대한 리스크를 줄여 안정적인 서비스 운영에 기여할 수 있다 📄 리팩토링한 내용 🚀 트러블 슈팅코드 추가 - 4. QueryDSL 을 사용하여 검색 기능 추가[검색 조건]- 검색 키워드..
https://school.programmers.co.kr/learn/courses/30/lessons/131532 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제USER_INFO 테이블과 ONLINE_SALE 테이블에서 년, 월, 성별 별로 상품을 구매한 회원수를 집계하는 SQL문을 작성해주세요. 결과는 년, 월, 성별을 기준으로 오름차순 정렬해주세요. 이때, 성별 정보가 없는 경우 결과에서 제외해주세요. 📝 풀이과정1. JOIN을 통해 `USER_INFO`와 `ONLINE_SALE`의 테이블을 합친다SELECT * FROM USER_INFO ..
JPA를 활용하여 회원 CRUD API 구현하기- 유저 저장, 단건 조회, 전체 조회, 삭제 기능- 유저는 유저명, 이메일, 작성일, 수정일 필드를 가지고 있음 📝 개발 과정1. schedules 데이터 베이스 생성create database schedules;use schedules;2. JPA 환경 설정하기 build.gradle파일의 dependencies에 JPA 라이브러리를 설치한다// MySQLimplementation 'mysql:mysql-connector-java:8.0.28'//JPA, 스프링 데이터 JPA 추가implementation 'org.springframework.boot:spring-boot-starter-data-jpa'3. 연결 정보 설정application.pro..
https://school.programmers.co.kr/learn/courses/30/lessons/157340 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제CAR_RENTAL_COMPANY_RENTAL_HISTORY테이블에서 2022년 10월 16일에 대여 중인 자동차인 경우 '대여중' 이라고 표시하고, 대여 중이지 않은 자동차인 경우 '대여 가능'을 표시하는 컬럼(컬럼명: AVAILABILITY)을 추가하여 자동차 ID와 AVAILABILITY리스트를 출력하는 SQL문을 작성해주세요. 이때 반납 날짜가 2022년 10월 16일인 경우에도 '..
https://school.programmers.co.kr/learn/courses/30/lessons/164670 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회하는 SQL문을 작성해주세요. 이때, 전체 주소는 시, 도로명 주소, 상세 주소가 함께 출력되도록 해주시고, 전화번호의 경우 xxx-xxxx-xxxx 같은 형태로 하이픈 문자열(-)을 삽입하여 출력해주세요. 결과는 회원 ID..
https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📌 문제ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. 📝 풀이과정먼저, 동일한 회원이 동일한 상품을 재구매한 데이터를 조회해야 하므로 USER_ID와 PRODUC..
💡JPA를 활용하여 CRUD를 구현하고, 이를 통해 객체 지향적으로 데이터를 다룰 수 있다💡JPA를 활용하여 데이터베이스를 관리하고 영속성에 대해서 이해할 수 있다💡회원가입, 로그인을 통해 인증/인가를 이해하고 JWT를 활용할 수 있다💡RestTemplate을 통해 외부 정보를 호출하고 활용할 수 있다 📌 요구사항 분석일정 도메인 모델작성 유저명할일 제목할일 내용작성일수정일일정 관리 기능일정 저장단건 조회담당 유저들의 고유 식별자, 유저명, 이메일이 추가로 포함일정 수정일정 페이징 조회페이지 번호와 페이지 크기를 쿼리 파라미터로 전달하여 요청할일 제목, 할일 내용, 댓글 개수, 일정 작성일, 일정 수정일, 일정 작성 유저명 조회페이지크기는 10을 디폴트로 적용일정 수정일 기준으로 내림차순 정렬일..