왕초보일지

맨날 다 끝난 후에야 내용 캡쳐해놓을것을 후회하다...🥲 문제 pageable 의 pagesize 를 10으로 고정했는데도 불구하고 테스트환경에서 pagesize가 1로 디폴트 된 값이 나왔다. 그로 인해 우리 프로젝트에서 원하는 10size 로 매번 변경해주어야 했다. 해결과정 1 yml 파일로 설정 spring: data: web: pageable: default-page-size: 10 아무런 변화가 없다. 2 PageRequet 클래스의 of 메서드로 pageable 객체 생성 방법을 찾는 도중 우리는 커서기반으로 한 무한스크롤 페이지가 나오는 프로젝트만들고 있는데 굳이 pagesize 와 pagenumber을 입력받을 필요가 없다는 것을 깨달아서 아예 입력받는 request 를 제거하였다. of..
커서 기반 페이지네이션 참조 : https://jojoldu.tistory.com/528?category=637935 대용량 트래픽 프로젝트에서 트위터를 모방한 애플리케이션을 구현하기 위해 cousor 기반으로 페이징을 시도했다. 페이지네이션 책의 페이지처럼 데이터를 묶음으로 분리 왜? offset 기반과 coursor 기반의 차이점 offset 은 조건에 해당하는 모든 데이터를 가져온 뒤 페이지사이즈를 기반으로 페이징을 한다. 예를 들어 SELECT * FROM items WHERE 조건문 ORDER BY id DESC OFFSET 10000 LIMIT 20 이라 하면 10000부터 20개의 데이터를 가져오는 과정에서 1부터 10000까지의 10000개의 행을 버려야하는데도 불구하고 읽어와야 한다. 이..
내배캠 13주차 대용량 트래픽 프로젝트 240214-240223 S.A. https://www.notion.so/A1-295a5b79d2bf44b8b9c50974e0fb59a6 A1조 | Notion ❤ 우리 팀 프로젝트 소개 adorecamus.notion.site 중점사항 => Cache 를 이용한 트래픽 관리 필수 구현 : spring 의 @Cache 기능 활용 선택 구현 : redis 이용 대용량 트래픽을 어떻게 관리하느냐가 중심이라서 기본 CRUD 기능은 간단하고 빠르게 끝내고 최대한 빨리 cache 를 적용하기로 하였다. 오늘 구현 사항 : bubble CUD / 예외처리 spring cache 참조 https://bcp0109.tistory.com/385 https://jiwondev.tis..
Service 테스트코드 작성 문제 service 테스트 코드 작성 중 존재하지 않는 post 저장했을 때 예외는 잘 통과하는데 존재하는 post 를 저장했을 때 실행하면 NullPointerException 과 함께 실패한다. 코드 package org.example.todolist.domain.post import io.kotest.assertions.throwables.shouldThrow import io.kotest.core.spec.style.BehaviorSpec import io.kotest.extensions.spring.SpringExtension import io.kotest.matchers.shouldBe import io.kotest.matchers.shouldNotBe impor..
aws s3 이미지 업로드 MultipartFile 업로드 방식 참조 : ( https://techblog.woowahan.com/11392/ , https://varjm.tistory.com/79 , https://growth-coder.tistory.com/114, https://chb2005.tistory.com/200 ) https://chb2005.tistory.com/200 클라이언트에서 첨부파일로 이미지를 업로드하면 스프링부트에서 이미지 파일을 MultipartFile 객체로 변환, S3 에 파일업로드, 클라이언트에 이미지 url 을 반환 aws s3 버킷 생성 IAM, 정책 설정 S3Service 더보기 package org.example.todolist.infra.aws import co..
test 코드 작성 중 LocalDateTime 관련 에러 PostControllerTest 더보기 @SpringBootTest @AutoConfigureMockMvc // mock 빈 등록 @ExtendWith(MockKExtension::class) class PostControllerTest @Autowired constructor( private val mockMvc: MockMvc, private val jwtPlugin: JwtPlugin ): DescribeSpec({ extension(SpringExtension) //Junit5 확장 afterContainer { clearAllMocks() } val postService = mockk() describe("GET/posts/{postI..
오늘 한 일 스탠다드반 JPA, querydsl 세션 / spring 심화 querydsl 강의 개선 과제 querydsl 검색조건 / validation 문제 1 애플리케이션을 실행할 때마다 DB의 모든 데이터가 삭제된다. 재실행할 때 날아가던 쿼리문 더보기 alter table if exists comment drop constraint if exists FKs1slvnkuemjsq2kj4h3vhx7i1 Hibernate: alter table if exists comment drop constraint if exists FKs1slvnkuemjsq2kj4h3vhx7i1 2024-02-06T15:24:06.020+09:00 DEBUG 11196 --- [ main] org.hibernate.SQL :..
🚩Validation 읽고 다시 해보기 : https://mangkyu.tistory.com/174 🚩Spring AOP 부가기능 모듈화. spring aop 는 runtime 에 프록시를 통해 객체에 접근한다. dependency implementation("org.springframework.boot:spring-boot-starter-aop") // aop @EnableAspectJAutoProxy @EnableAspectJAutoProxy @SpringBootApplication class ToDoListApplication 어노테이션 설정 @Target(AnnotationTarget.FUNCTION) // 적용될 대상 @Retention(AnnotationRetention.RUNTIME) // ..
💬 1/30 - 회원 가입 API [ ] 닉네임, 비밀번호, 비밀번호 확인을 request에서 전달받기 [ ] 닉네임은 최소 3자 이상, 알파벳 대소문자(a~z, A~Z), 숫자(0~9)로 구성하기 [ ] 비밀번호는 최소 4자 이상이며, 닉네임과 같은 값이 포함된 경우 회원가입에 실패로 만들기 => Validation 적용이 안 된다....다른거 해보고 와서 다시 해보기... [ ] 비밀번호 확인은 비밀번호와 정확하게 일치하기 [ ] 데이터베이스에 존재하는 닉네임을 입력한 채 회원가입 버튼을 누른 경우 "중복된 닉네임입니다." 라는 에러메세지를 response에 포함하기 [ ] 회원 가입 버튼을 누르기 전, 같은 닉네임이 존재하는지 "확인" 버튼을 눌러 먼저 유효성 검증부터 할 수 있도록 해보기 [ ] ..
Docker 설치&실행 docker에 대한 이해 필요...... https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html docker : 컨테이너 기반의 오픈소스 가상화 플랫폼 다양한 프로그램, 실행환경을 컨테이너로 추상화하여 프로그램의 배포 및 관리를 단순하게 해준다. 컨테이너: 격리된 공간에서 프로세스가 동작하는 기술 이미지: 컨테이너 실행에 필요한 파일과 설정값 등 immutable하다!! 🚩wsl ubuntu 설치 -Hyper-V / Linux용 Windows 하위 시스템(wsl) 기능 켜기 설정하고 재부팅 해야 함!! -재부팅 후 Windows Terminal 을 관리자 권한으로 실행 강의 예시랑 다른데?! 그냥 진행해봤다. wsl -..
다시은
'왕초보일지' 카테고리의 글 목록 (2 Page)