분류 전체보기
-
[강의] 자바 ORM 표준 JPA 프로그래밍 - 기본편 수료Backend/책,강의 2022. 3. 1. 16:30
헤헤 강의 어찌어찌 다 들었다! 사놓고 가끔씩 연관관계 헷갈릴 때 부분 부분 들었었는데 그러니까 이 강의에서 설명하는 내용이 어디서부터 어디까진지 뭘 중요하게 말하시지? 이런 흐름을 모르겠어서 그냥 만보 걷기 할 때 배속하면서 라이브 코딩 따라 하진 못하고 강의만 봤다. 그래서 수료라고 하기 살짝 민망.. 하지만 그래도 들은 건 들은 거고 강의 들어서 얻은 게 있으니까!! 사실 이전에 다 들었다고 한 스프링 핵심원리는 다 까먹어서 다시 복습하면서 정리하려고 한다 ㅎㅎ;; 그리고 강의 70% 정도들을 때 까지 아니 근데 왜 자꾸 entitymanager persist 이런 거 쓰시지..? 왜 findById 안 쓰시지 했는데 끝나갈 무렵에야 아 내가 배우고 있는 게 JPA를 구현한 hibernate 사용법..
-
[DB] 인덱스로 조회시 개선되는 성능 확인해보기Backend/개발 2022. 2. 23. 20:33
DB의 인덱스 라는 개념이 분명히 우리가 목차나 여러가지 인덱스를 접할 기회가 많은데도 되게 와닿지 않는다고 느꼈다. 아무리봐도 이론으로 글만 보려니까 재미가 없어서 그런지.. 그래도 중요한 개념이라 정리해보고 있는데 그런김에 실습을 한번 해보았다. 현재 하고있는 토이프로젝트에 1년간 쌓인 게임 데이터는 총 1200개이고 한 판에 참가하는 인원이 10명이라 참가자에 대한 데이터는 12000개가 쌓여있었다. 만약에 챔피언ID를 기준으로 해당 챔피언을 사용한 게임을 조회한다거나, 뭐 count를 세서 기간내에 가장 많이 사용된 챔피언이 무엇인지 검색할 일이 있다면 !? 일단 mysql query 몇가지를 정리해본다. select count(*) as cnt from game_record_participant..
-
[Git] git add -p 로 변경사항 일부만 commitBackend/git,협업 2022. 2. 21. 15:53
commit할 때 최대한 커밋 메세지 컨벤션을 맞추고, 그에 해당하는 부분만 커밋하려고 하는데 가끔 한번에 여러가지 수정이 일어나게 되거나 잠시 주석처리, debug용 메세지를 남긴 상태로 한 파일을 일괄 add 하게되면 남기지 말아야할 기록이 함께 추가될 수 있다. 이때 git add -p를 사용하면 파일의 수정된 블록(hunk라고 부른다) 별로 add할지,말지 정할 수 있어서 커밋 히스토리를 깔끔하게 관리할 수 있다. hunk에 대해서 다음 문구가 뜨는데 []중 하나의 명령어를 입력하면 된다. - Stage this hunk [y,n,q,a,d,s,e,?] 수정된 파일의 hunk부분에 대해서 물어보는데 자주 사용되는 명령어는 다음과 같다. y - 해당 hunk를 stage 시킨다 n - 해당 hunk..
-
[Spring Boot] Validation 유효성 검증Backend/공부,개념 2022. 2. 17. 22:25
Validation - 유효성 검증 우리는 입력하는 값에 대한 유효성 검사를 해야할 필요가 있다. 단순한 예로 회원가입 ID/PW 값에 대해서도 ID는 4자리 이상이어야 하며, PW에는 소문자,영어,특수문자와 같은 문자들이 들어가야한다는 조건이 있다. 더 단순하게는 null에 대한 처리도 있을 것이다. 프론트엔드 단에서도 이 값에 대해서 검사를 하겠지만, 그것만 믿고 요청 부분에 유효성 검사를 하지 않으면 business, db 레이어에서 올바르지 않은 값으로 인해 서버에 문제가 생길 수 있다. 그렇다면 유효성 검사(Validation)은 어디서 해야할까? 데이터 검증이 여러 계층에 걸쳐서 이루어 진다면, 동일한 내용에 대한 검증 로직이 중복되거나 계층간 검증 로직의 불일치로 오류가 생길 것이다. 이를 ..
-
[AWS] Cloudformation Conditions, AllowedPattern으로 파라미터 값 검사하기CLOUD/AWS 2022. 2. 15. 20:35
Cloudformation AllowedPattern으로 특정 패턴이 아니면 설정하지 않는 법 1. Default값을 설정하고, 특정 정규식과 Default값만 가능하게 AllowedPattern을 지정한다. InboundIp: Type: String Default: unused AllowedPattern: "^[0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[.][0-9]{1,3}[/][0-9]{1,2}$|^unused$" 2. Conditions 지정 Conditions: IsUnused: !Equals [!Ref InboundIp, "unused"] Conditions는 Parameter, Metadata와 같은 줄에 생성해야 한다. 해당 String이 unused인지 아닌지를 확인..
-
[Spring Boot] Controller의 Request data 받아오는 방식Backend/공부,개념 2022. 2. 12. 16:59
github에 정리한 내용 중 너무 복잡하거나 불확실한 내용 빼고 정리해서 다시 올려본다. SpringBoot에서 RestController 구현 시 요청을 받아오는 방법에 대해서 정리해보려고 한다. 지금 정리하는 방식에는 form data 형식의 요청은 일단 제외하고 클라이언트가 json형태의 데이터를 보내거나, url query에 담아서 보내는 방식만을 정리하려고 한다. ( content-type: application/json ) 1. HTTP Method 먼저, HTTP METHOD 중 GET, POST, DELETE에 대해서 간단히만 정리하면 다음과 같다. GET 리소스 조회에 사용 query(쿼리 스트링, 파라미터)로 전달 body 지원 일부 안함 (Getmapping일 때 requestBod..
-
[Spring Boot] Dto와 EntityBackend/공부,개념 2022. 2. 12. 16:33
DTO ENTITY 1. Entity JPA를 사용해서 개발하게되면 Entity클래스가 바로 DB테이블로 1:1 매핑되어진다. 따라서 테이블이 가지지 않는 컬럼을 필드로 가져서는 안되며 Entity클래스는 다른 클래스를 상속받거나, 인터페이스 구현체여서는 안된다. 이때 사용하는 Entity를 그대로 구현시에 사용하지 않기 위해서 Dto를 사용한다. 2. DTO ( Data Transfer Object) DB에서 꺼낸 데이터를 저장하는 Entity를 가지고 일종의 Wrapper의 역할을 한다. Controller계층 처럼 클라이언트와 직접 마주하는 계층에서는 실제 데이터인 Entity대신 DTO를 사용해 데이터를 교환한다. DTO는 특별한 로직을 가지지 않는 순수한 데이터 객체여야하며 Setter를 만들지..
-
[Algorithm/Java] 백준 17500 국경알고리즘 2022. 2. 7. 18:41
https://www.acmicpc.net/problem/17500 17500번: 국경 만약 조건을 만족하는 국경이 존재하지 않는다면 첫 번째 줄에 "no" 를 출력하고 더 이상 아무것도 출력하지 않아야 합니다. 조건을 만족하는 국경이 존재한다면 첫 번째 줄에 "yes" 를 출력하고 www.acmicpc.net 보통 배열은 칸으로 움직이는데 이 문제는 꼭지점,선분을 이어서 움직여야해서 처음에 어떻게해야할지 고민이었다. 일단 N이 최대가 4여서 모든 경우를 다 해보면 될 것 같았다. N*N 배열을 (2*N+1)*(2*N+1)로 늘려서 나라가 되는 부분과 국경과 될수 있는 부분을 모두 배열로 치고 나라 부분을 경계로 두고 목적지 까지 갈 수 있는 모든 경로를 백트래킹으로 탐색했다. 나라부분이 벽인(visit..