분류 전체보기(109)
-
비밀번호의 암호화 위치, 엔티티 내부 vs 서비스 계층?
위와 같은 단순한 게시판 프로젝트를 진행 중에 있다. 회원 엔티티의 password 필드는 프론트엔드에게서 받은 비밀번호를 암호화하여 저장하는 필드이다. 회원가입을 할 때 보통은 이 암호화라는 작업을 MemberService 계층 안에서 작업한다. public class MemberService { private final MemberRepository memberRepository; private final PasswordEncoder passwordEncoder; //회원 등록 @Transactional public void registerMember(MemberRegiDTO memberRegiDTO) { String name = memberRegiDTO.getName(); String passwor..
2023.10.17 -
필드 Null 체크 없애기, Optional<String> vs String?
최근 게시판 프로젝트로 끝까지 한번 해보자 라는 프로젝트를 진행하고 있던 와중,참 거슬리는 코드가 눈에 들어왔다.저게 틀린 코드라고 생각하지는 않았기에 저렇게 적었다만은,뭐랄까 참 지저분해 보이는 코드라서 리팩토링 욕구(?)가 솟았다. 그래서 어떻게 할까 고민을 하던 와중 먼저저 코드의 의미, 기능을 생각해보니 다음과 같았다. MemberUpdateDTO 의 Null 이 아닌 필드들만 DB에 업데이트 하기! 즉 필드의 null 체크를 좀 더 야무지게 할 수 있는 방법을 찾으면 됐다.그러다 Java 8 부터 도입된 Optional 을 사용하면 훨씬 더 안전하고,Java 표준 스펙에 의거한 코드를 만들 수 있지 않을 까 생각했다. 그래서 MemberUpdateDTO 의 null 이 올수 있는 필드를 Opti..
2023.10.13 -
"Build 를 정지합니다", 프로젝트마다 다른 버전 (IntelliJ)
Getting Started | Client-Side Load-Balancing with Spring Cloud LoadBalancer This guide walks through building two projects, one of which is a dependency to the other. Consequently, you need to create two child projects under a root project. First, create the build configuration at the top level. For Maven, you need a pom.xml with spring.io 곧 계획 예정 중인 MSA 프로젝트를 혼자서 연습해 보기 위해 Spring Doc 의 Client-S..
2023.09.15 -
[Querydsl] java.lang.IllegalArgumentException: No sources given
실전! Querydsl - 인프런 | 강의 Querydsl의 기초부터 실무 활용까지, 한번에 해결해보세요!, 복잡한 쿼리, 동적 쿼리는 이제 안녕! Querydsl로 자바 백엔드 기술을 단단하게. 🚩 본 강의는 로드맵 과정입니다. 본 강의는 자바 백엔 www.inflearn.com 실행 환경 (build.gradle) buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'java' id 'org.springframework.boot' version '2.7.12' id 'io.spring.dependency-management' version '1.0.15.RELEASE' // querydsl 추가 id 'com.ewerk.gradle.plug..
2023.09.13 -
영한갓님 JPA 실전 강의 들었는 데 CQS, CQRS 안다, 모른다?
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화 - 인프런 | 강의스프링 부트와 JPA를 활용해서 API를 개발합니다. 그리고 JPA 극한의 성능 최적화 방법을 학습할 수 있습니다., 스프링 부트, 실무에서 잘 쓰고 싶다면? 복잡한 문제까지 해결하는 힘을 길러보세요www.inflearn.com영한갓님의 강의에서 회원의 정보를 수정하기 위해MemberService에 update 메서드를 추가하던 와중이었습니다."update 메서드는 엔티티를 바꾸겠다는 변경성 메서드인데, 이 메서드의 return type 을 Member로 한다면 update로 조회를 하는 꼴이 돼요.command와 query 가 같이 있는 꼴이 되죠.그래서 저는 update 메서드의 return type을 void로 하거..
2023.09.11 -
[길벗출판사 21차 리뷰어] 개발자가 되고 싶습니다
이번에 21차 개발자 리뷰어에 선정되어, 밑의 책을 고르고, 리뷰 작성해보겠습니다! 8/30까지 리뷰를 해야 하기 때문에... 짧고 굵게 리뷰해 보겠습니다! 한줄평 개발자로서 입문을 이제 막 시작하거나, 개발에 대해 고민하거나, 혹은 부트캠프를 이수 중인 사람에게 추천한다! 좋은 점 개발을 하다 보면 들리는 여러 소리, 소문, 괴담(?) 들이 있는 데, 이에 대한 답을 준다! 사실 모두가 처음에 힘들지만, 자기 자신만 힘들다고 생각한다. 저자는 본인의 솔직한 경험, 남들과 비슷한 경험을 통해 당연하고 이겨낼 수 있음을 보여준다! 단순히 말만 하는 게 아니라, 필자가 아는 분야에 대해서 구체적으로 어느 사이트에서 학습을 할 수 있는지 알려준다! 아쉬운 점 저자는 IOS 개발자로 유명하시고, 이 분야에 고수..
2023.08.30 -
옵티마이저 아무거나 선택하면 안되는 이유, Adam vs AdamW
???:"휴먼, 당신의 말은 이해할 수 없습니다.(진짜모름)", 자연어처리를 위한 BERT 선택의 이유와 근 1. 상황 2023.07.24 - [산학협력프로젝트] - ??? : "하... 뭐 고르지?", 기술 선택의 이유와 근거 (1) ??? : "하... 뭐 고르지?", 기술 선택의 이유와 근거 (1) 뭐 먹을까요? 깔깔깔 산학협력 프로젝트, 광고 xpmxf4.tistory.com 위 글에서 저는 다음가 같은 코드를 보여드렸습니다. model = BertForSequenceClassification.from_pretrained('bert-base-multilingual-cased', num_labels=2) model = model.to(device) optimizer = AdamW(model.pa..
2023.08.21 -
어째서 광고 차단 프로그램의 규칙은 공개되어 있을까?
이번 광고 차단의 기능을 수행하는 기계학습 모델 만들기 프로젝트를 진행하게 된 이유는 다음과 같습니다. 광고 차단 규칙이 명시가 되어 있어 악성 광고사이트 제작자들은 이 규칙들을 보며 매번 새롭게 광고 사이트들을 만들어내고, AdGuard는 계속해서 필터링 규칙들을 업데이트해나가야 하는 구조이다. 따라서 자동으로 규칙을 업데이트 하지 않아도 알아서 잡아내도록 기계학습을 활용해보자! 프로젝트를 진행하며 광고 차단을 하는 기계학습 모델을 Fine-Tuning 했지만 진행하면서 이런 생각이 들었습니다. 그냥 애초에 필터를 공개 안 하면 이런 고생을 안 해도 되지 않을까? 아무래도 EasyList 같은 필터를 공개하지 않는 다면 악성 광고 사이트 제작자들이 규칙을 제대로 파악할 수 없어 악성 광고 사이트의 발전..
2023.08.09 -
???:"휴먼, 당신의 말은 이해할 수 없습니다.(진짜모름)", 자연어처리를 위한 BERT 선택의 이유와 근거
1. 상황 2023.07.24 - [산학협력프로젝트] - ??? : "하... 뭐 고르지?", 기술 선택의 이유와 근거 (1) ??? : "하... 뭐 고르지?", 기술 선택의 이유와 근거 (1) 뭐 먹을까요? 깔깔깔 산학협력 프로젝트, 광고 차단 오토로 돌리기 (졸업 하고 싶어요ㅠ) 1. 오늘의 주제 이번에 진행한 프로젝트는 산학협력 프로젝트입니다! 주제는 '기계 학습을 통한 광고 사 xpmxf4.tistory.com 저번 글에서 말했든 저는 태그 안 자연어들을 통해 NLP 이를 학습시켜 추후 광고 사이트를 알아서 걸러내는 모델을 만드려고 합니다. 즉 현재 제가 원하는 바를 문장으로 정리한다면 다음과 같습니다. HTML 문서 태그 안 자연어들을 보고 광고 사이트인지 판단하는 모델 이 문장은 (머신러..
2023.08.07 -
어디서부터 이게 잘못된 걸까..., 기계 학습 시 데이터셋 양의 중요성
2023.08.03 - [산학협력프로젝트] - BERT 로는 노오력이 부족하다, RoBERTa 로 성능 개선 BERT 로는 노오력이 부족하다, RoBERTa 로 성능 개선 2023.08.01 - [산학협력프로젝트] - "너가 만든 거 유효하긴 해?", BERT, Random Forest 성능테스트 하기 "너가 만든 거 유효하긴 해?", BERT, Random Forest 성능테스트 하기 동전에 이어 이번에는 나무...? Random Fo xpmxf4.tistory.com 저번 포스팅을 보시고 오는 것을 추천드립니다!! 저번 글에서 충격적인 것을 발견했었는 데, 바로 오차율이 소수점 맨 아래까지 똑같다는 것입니다... 아무리 제가 머신 러닝 쪽을 처음 해본다고는 하지만, 어쨌든 통계라는 것을 이용해 예측을..
2023.08.03