분류 전체보기
-
| 서문 2022년도 11월에 개발자로 취업해 2023년도 1년은 개발자로 보냈다. 개발 블로그를 Velog에서 다시 티스토리로 옮기면서 글을 많이 써야지! 라고 다짐했지만 현실은...아래 이미지 처럼 단 한개 뿐이다... 무려 해당 게시물도 2023년도 8월 22일에 작성한 게시물이다. 업무를 하면서 혹은 사이드 프로젝트를 진행하면서 아래 이미지 처럼 노션이나 티스토리에 간단하게 글을 작성하고 비공개 글로 저장은 좀 해두었다. 이것들을 잘 정리해서 내년에는 적어도 한달에 2 ~ 4개는 포스팅을 할 계획이다.(제발 이 말을 내가 지키길) 이제 그럼 2023년도 계획은 무엇이었고 이것을 얼마나 실행했는지 회고해보겠다. | 2023년 계획 첫 번째 계획은 회사에서의 성장이다. 프로젝트 코드 리팩토링으로는 오..
신입 개발자의 2023년 회고| 서문 2022년도 11월에 개발자로 취업해 2023년도 1년은 개발자로 보냈다. 개발 블로그를 Velog에서 다시 티스토리로 옮기면서 글을 많이 써야지! 라고 다짐했지만 현실은...아래 이미지 처럼 단 한개 뿐이다... 무려 해당 게시물도 2023년도 8월 22일에 작성한 게시물이다. 업무를 하면서 혹은 사이드 프로젝트를 진행하면서 아래 이미지 처럼 노션이나 티스토리에 간단하게 글을 작성하고 비공개 글로 저장은 좀 해두었다. 이것들을 잘 정리해서 내년에는 적어도 한달에 2 ~ 4개는 포스팅을 할 계획이다.(제발 이 말을 내가 지키길) 이제 그럼 2023년도 계획은 무엇이었고 이것을 얼마나 실행했는지 회고해보겠다. | 2023년 계획 첫 번째 계획은 회사에서의 성장이다. 프로젝트 코드 리팩토링으로는 오..
2023.12.29 -
개요 - Java 파일 쓰기 회사 업무를 하다가 Java로 json 파일을 생성해야하는 코드를 짜게 되었습니다. 회사 프로젝트 내에서 FileWriter, PrintWriter가 존재했고 찾아보니 BufferedWriter도 있다는 것을 알게 되어서 각각의 Wirter들은 어떠한 차이점이 있는지 한 번 알아보고 정리하기 위해 글을 작성하게 되었습니다. FileWriter JavaDoc 설명(Java8 기준) Convenience class for writing character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable..
Java 파일 쓰기 인코딩 설정 - FileWriter, PrintWriter, BufferedWriter개요 - Java 파일 쓰기 회사 업무를 하다가 Java로 json 파일을 생성해야하는 코드를 짜게 되었습니다. 회사 프로젝트 내에서 FileWriter, PrintWriter가 존재했고 찾아보니 BufferedWriter도 있다는 것을 알게 되어서 각각의 Wirter들은 어떠한 차이점이 있는지 한 번 알아보고 정리하기 위해 글을 작성하게 되었습니다. FileWriter JavaDoc 설명(Java8 기준) Convenience class for writing character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable..
2023.08.22 -
📍 Intro 더미 데이터를 어떻게 만드냐도 문제인데 연관관계까지 생각해서 저장을 해야하는데... 생성해야하는 테이블의 순서 user -> brand , category -> product -> order, restock_notification 1. user 테이블 user_id : 랜덤값 ❌, 1부터 증가 emial : 이메일 관련 랜덤값 => fake.ascii_free_email(), fake.free_email() 차이는?! password : 랜덤값 ❌, 1234를 암호화 role : USER, ADMIN 랜덤인데 USER이 비중이 더 많이 2. brand 테이블 brand_id : 랜덤값 ❌, 1부터 증가 name : 브랜드명 관련 랜덤값 user_id : 랜덤값 ❌, user 테이블에 있는 ..
Python Faker로 더미 데이터 생성 (2/2)📍 Intro 더미 데이터를 어떻게 만드냐도 문제인데 연관관계까지 생각해서 저장을 해야하는데... 생성해야하는 테이블의 순서 user -> brand , category -> product -> order, restock_notification 1. user 테이블 user_id : 랜덤값 ❌, 1부터 증가 emial : 이메일 관련 랜덤값 => fake.ascii_free_email(), fake.free_email() 차이는?! password : 랜덤값 ❌, 1234를 암호화 role : USER, ADMIN 랜덤인데 USER이 비중이 더 많이 2. brand 테이블 brand_id : 랜덤값 ❌, 1부터 증가 name : 브랜드명 관련 랜덤값 user_id : 랜덤값 ❌, user 테이블에 있는 ..
2023.01.24 -
📍 Intro 항해99 프로젝트에서 대규모 데이터를 가지고 성능이 얼마나 나오고 이것을 얼마나 개선했는지를 보여주기로 팀원들과 계획했다. 프로젝트 주제는 의류 데이터였는데 무신O를 크롤링할까 봤는데 robots.txt를 보니 막혀있다... 포트폴리오에 괜히 문제가 생길까봐 일단 크롤링은 패스! 주제를 바꾸는 것도 고려하면서 공공 데이터도 뒤져봤지만 우리가 원하는 정도의 데이터는 없었다... 그래서 결국 파이썬 Faker를 사용해 더미데이터를 만드는 것으로 결론이 났다. 그래서 이번 포스팅은 Faker 공식 문서를 보고 번역(?)도하고 정리해보고자 한다! 사실 번역은 파파고가 한다. Faker Faker is a Python package that generates fake data for you. Whe..
Python Faker로 더미 데이터 생성 (1/2)📍 Intro 항해99 프로젝트에서 대규모 데이터를 가지고 성능이 얼마나 나오고 이것을 얼마나 개선했는지를 보여주기로 팀원들과 계획했다. 프로젝트 주제는 의류 데이터였는데 무신O를 크롤링할까 봤는데 robots.txt를 보니 막혀있다... 포트폴리오에 괜히 문제가 생길까봐 일단 크롤링은 패스! 주제를 바꾸는 것도 고려하면서 공공 데이터도 뒤져봤지만 우리가 원하는 정도의 데이터는 없었다... 그래서 결국 파이썬 Faker를 사용해 더미데이터를 만드는 것으로 결론이 났다. 그래서 이번 포스팅은 Faker 공식 문서를 보고 번역(?)도하고 정리해보고자 한다! 사실 번역은 파파고가 한다. Faker Faker is a Python package that generates fake data for you. Whe..
2023.01.23 -
더보기 현재 작성중인 글입니다. 참고해주세요. QueryDsl? QueryDsl 사용하는 이점 IDE를 통한 자동완성 기능 컴파일 에러가 발생 조건문을 사용한 동적 쿼리문 작성이 간편 코드의 재사용성 증가 QueryDsl 사용하는 단점 까다롭다 간단한 사용예시 사용 예시 1) query문을 작성하려면 JpaQuery 인스턴스가 필요합니다. 이를 위해 JpaQueryFactory를 통해 인스턴스를 생성해야 합니다. 먼저 JpaQueryFactory를 영속성 컨텍스트를 파라미터로 넘겨서 생성합니다.(Querydsl은 JPA API를 사용하며 JPA를 지원하는 모듈입니다.) JpaQueryFactory queryFactory = new JpaQueryFactory(em); 2) 사용하려는 QEntity를 생성..
QueryDsl 사용법 모음더보기 현재 작성중인 글입니다. 참고해주세요. QueryDsl? QueryDsl 사용하는 이점 IDE를 통한 자동완성 기능 컴파일 에러가 발생 조건문을 사용한 동적 쿼리문 작성이 간편 코드의 재사용성 증가 QueryDsl 사용하는 단점 까다롭다 간단한 사용예시 사용 예시 1) query문을 작성하려면 JpaQuery 인스턴스가 필요합니다. 이를 위해 JpaQueryFactory를 통해 인스턴스를 생성해야 합니다. 먼저 JpaQueryFactory를 영속성 컨텍스트를 파라미터로 넘겨서 생성합니다.(Querydsl은 JPA API를 사용하며 JPA를 지원하는 모듈입니다.) JpaQueryFactory queryFactory = new JpaQueryFactory(em); 2) 사용하려는 QEntity를 생성..
2023.01.20 -
📂 Error List 1. TransactionRequiredException 해결 발생한 오류 TransactionRequiredException 오류가 발생한 코드 public void deleteWish(User user, Long roomId) { Room room = roomRepository.findById(roomId).orElseThrow( () -> new IllegalArgumentException("해당 숙소 정보를 찾을 수 없습니다.") ); Wish wish = wishRepository.findByUserAndRoom(user, room) .orElseThrow(() -> new IllegalArgumentException("찾을 수 없는 wish 항목입니다.")); wishR..
TransactionRequiredException, java.lang.ClassCastException, H2 console에서 Column not Found 해결📂 Error List 1. TransactionRequiredException 해결 발생한 오류 TransactionRequiredException 오류가 발생한 코드 public void deleteWish(User user, Long roomId) { Room room = roomRepository.findById(roomId).orElseThrow( () -> new IllegalArgumentException("해당 숙소 정보를 찾을 수 없습니다.") ); Wish wish = wishRepository.findByUserAndRoom(user, room) .orElseThrow(() -> new IllegalArgumentException("찾을 수 없는 wish 항목입니다.")); wishR..
2023.01.19 -
📌 Intro 항해99 주특기 숙련주차에서 처음 Spring Security를 접하고 미니프로젝트 주차에서도 Spring Security를 접했다. 물론 숙련주차에서 작성한 코드를 기반으로 했지만 Spring Security는 너무 어렵다...그리고 너무 내용이 방대하다.. 이번 포스팅에서는 간단하게 Spring Security 사용법과 메소드들을 쭉 나열하고 어떤 기능인지 적어봤다. 일단 이론적인 부분들로만 채웠는데 포스팅을 하면서 느낀 것은(포스팅 다하고 Intro 적는중..) Spring Security 프로젝트를 하나 만들어서 내가 직접 이것 저것 해봐야겠다..!는 것이다. Spring Security 프로젝트를 하나 파서 나중에 에러나는 부분들이나 에러를 해결하는 부분들을 잘 정리해보려고 한다!..
Spring Security 간단한 사용방법📌 Intro 항해99 주특기 숙련주차에서 처음 Spring Security를 접하고 미니프로젝트 주차에서도 Spring Security를 접했다. 물론 숙련주차에서 작성한 코드를 기반으로 했지만 Spring Security는 너무 어렵다...그리고 너무 내용이 방대하다.. 이번 포스팅에서는 간단하게 Spring Security 사용법과 메소드들을 쭉 나열하고 어떤 기능인지 적어봤다. 일단 이론적인 부분들로만 채웠는데 포스팅을 하면서 느낀 것은(포스팅 다하고 Intro 적는중..) Spring Security 프로젝트를 하나 만들어서 내가 직접 이것 저것 해봐야겠다..!는 것이다. Spring Security 프로젝트를 하나 파서 나중에 에러나는 부분들이나 에러를 해결하는 부분들을 잘 정리해보려고 한다!..
2023.01.19 -
Pagination 하는법 1. 파라미터를 Pageable 객체로 받거나 sort, page, size를 따로 받기. 1-1. 파라미터를 Pageable 객체로 받기 @GetMapping("/api/posts") public Page getPosts(@RequestParam String category , Pageable pageable) { ...생략 } Pageable 객체로 받을 때 주의할 점은 @RequestParam 없이 받아야한다. @RequestParam을 넣었더니 status code 400 Bad Request 에러발생! pageable을 출력하면 어떻게 출력될까? ?category=ALL&page=0&size=5&sort=default 참고로 controller단에서 sort를 따로 받..
Spring Pagination으로 무한스크롤 구현Pagination 하는법 1. 파라미터를 Pageable 객체로 받거나 sort, page, size를 따로 받기. 1-1. 파라미터를 Pageable 객체로 받기 @GetMapping("/api/posts") public Page getPosts(@RequestParam String category , Pageable pageable) { ...생략 } Pageable 객체로 받을 때 주의할 점은 @RequestParam 없이 받아야한다. @RequestParam을 넣었더니 status code 400 Bad Request 에러발생! pageable을 출력하면 어떻게 출력될까? ?category=ALL&page=0&size=5&sort=default 참고로 controller단에서 sort를 따로 받..
2023.01.18