일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택
- 스파르타내일배움캠프TIL
- c#
- Firebase
- 유클리드호제법
- 순열
- unityui
- 유니티
- Unity3d
- Unity
- UnrealEngine
- 구현
- C++
- 이분탐색
- 알고리즘
- 문자열
- 스파르타내일배움캠프
- 내일배움캠프
- 언리얼엔진
- Inventory
- FSM
- BFS
- Unity2D
- 워크플로
- UE4
- 프로그래머스
- QueryDSL
- Photon
- 해시
- 포톤
- Today
- Total
목록Java/Sparta (84)
개발 낙서장
오늘의 학습 키워드📚 순서 변경을 DB에 저장하는 방법 위 사진은 Trello에서 컬럼끼리 순서를 변경하는 방법이다. 오브젝트를 드래그해 옮기면 순서가 변경된다. 해당 기능을 구현하려면 DB에도 순서에 대한 값이 들어가야 하는데 어떻게 변경해야 할지 고민이 됐다. 1. 변경될 컬럼과 직접 sequence 값을 변경한다. 1번 방법은 굉장히 직관적인 방법이다. To do 컬럼의 sequence가 1, Doing 컬럼의 sequence가 2라고 가정할 때 To do를 Doing의 뒤로 변경시키려면 Doing 컬럼의 sequence를 1, To do 컬럼의 sequence를 2로 변경하면 된다. 해당 방법의 문제점은 하나의 컬럼의 순서를 변경하기 위해 두 개의 컬럼의 값을 변경하는 쿼리를 날려야 한다는 것이지..
오늘의 학습 키워드📚 Git 잔디 반영 안 되는 경우 지금은 잔디가 잘 차있지만(듬성듬성하긴 해도...) 처음 발견했을 때는 오른쪽 두세 줄이 비어있었다. 최근에 바꾼 건 깃허브 계정 이메일을 바꿨었는데 이 부분에서 문제가 생겼다. // 로컬 이메일 확인 git config user.email // 원격 이메일 확인 git config --global user.email 이렇게 로컬의 이메일과 원격의 이메일을 확인할 수 있는데 이 이메일이 다를 경우 다른 사람이 커밋한 것으로 인식돼 잔디 반영이 안 된다고 한다! 나는 다행히 이메일을 바꾸면서 기존에 있던 이메일을 삭제하면서 벌어진 일이라 예전 이메일을 다시 등록하니 해결이 됐다. // 로컬 이메일 변경 git config user.email 바꿀이메일 ..
오늘의 학습 키워드📚 AWS EC2에 Spring 프로젝트 배포 https://velog.io/@s0nnyday/AWS-EC2-%EC%9D%B8%EC%8A%A4%ED%84%B4%EC%8A%A4-%EC%97%B0%EA%B2%B0#11-git-bash-%EB%A1%9C-ec2-%EC%97%B0%EA%B2%B0 [AWS-EC2] 배포-SSH프로토콜(1): Jar빌드 후 EC2로 복사, 실행 [AWS] [EC2 연결] [Spring Boot 프로젝트] [jar빌드] velog.io https://dhun.tistory.com/8 [Spring Boot] AWS에 프로젝트 배포하기(EC2, FileZilla) 1. AWS EC2에 들어가서 인스턴스 시작 클릭 2. 인스턴스 이름 입력하고, OS는 Ubuntu 18..
오늘의 학습 키워드📚 QueryDSL 페이징 + 성능 개선 https://dachomi97.tistory.com/130 [Spring] QueryDSL 페이징 QueryDSL 페이징? 기존에 레포지토리에서 페이징 된 값을 받을 때처럼 Pageable 객체를 만들어 페이지 정보를 보내 QueryDSL로 작성된 쿼리문을 통해 받아오면 된다. List content = queryFactory.selectFrom(todo).wh dachomi97.tistory.com 불필요한 조회 쿼리 개선 Todo에 관한 쿼리를 수행할 때 User 조회 쿼리도 항상 같이 날아가는 이슈가 있었다. Hibernate: /* select todo from Todo todo where todo.user = ?1 */ select t..
오늘의 학습 키워드📚 페이징 반드시 익혀야 하는 기본적인 기술이다. 어떤 것을 조회할 때 몇 개가 나올 수도 있지만 1000개가 나올 수도 있다. 혹은 그 이상... 이 모든 정보를 다 조회해서 표시할 필요는 없다. 이 때 사용되는 것이 Paging이다. 페이징을 사용하면 사용자가 원하는 만큼 조회할 수 있기 때문에 사용성이 좋아지고 서버 입장에서도 불필요한 리소스를 로드하지 않으므로 성능적으로 장점이 많다. 페이징을 사용하기 위해서는 기본적으로 필요한 정보들이 있다. 조회할 페이지가 몇 페이지인가? 한 페이지에 몇 개를 표시할 건가? 오름차순인가 내림차순인가? 기준 키워드는 무엇인가? Spring에서 제공하는 Pageable 인터페이스를 사용해서 JPA Repository에 페이지 정보를 보내 페이징 ..
오늘의 학습 키워드📚 로그인 페이지 기존엔 API만 만들고 포스트맨으로 테스트했다면 이제 실제로 View를 만들어볼 차례다. 아무리 백엔드 개발자가 되기 위해 공부를 한다지만 다방면으로 기본적인 지식은 있어야 하니까.... 먼저 html, js, css를 구성한다. 그리고 기존 컨트롤러들은 RestController 였으니 View를 표시하기 위한 Controller를 만들어 준다. package com.sparta.mytodo.view.controller; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContextHolder; import org..
오늘의 학습 키워드📚 QueryDSL QueryDSL은 기존 Spring Data JPA의 Query Method의 단점을 보완한 쿼리 방식이다. 기존 쿼리 메소드는 간단한 조회 등에는 직관적이고 사용하기 굉장히 편리했지만 조건이 복잡해질 수록 사용하기 까다로워진다. 또한 @Query를 통해 어느정도 커스텀 쿼리를 작성할 수 있다고 하지만 String 형식으로 작성하기에 개발자 입장에서 오타나 문법이 잘못된 부분을 파악하기 어렵다. QueryDSL은 QueryFactory를 통해 Java 메소드로 쿼리를 구현할 수 있어 컴파일 단계까지 가지 않아도 오탈자, 잘못된 문법 등을 쉽게 파악할 수 있고 가장 큰 장점은 동적인 쿼리 작성에 매우 유연하다는 것이다. 적용 방법 먼저 의존성을 추가해준다. 스프링 버전..
오늘의 학습 키워드📚 JPA 용어 엔티티 매니저(Entity Manager) : 엔티티 매니저는 영속성 컨텍스트를 관리한다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근할 수 있다. 영속성 컨텍스트(Persistence Context) : 영속성 컨텍스트는 엔티티를 보관하고 관리한다. 엔티티에 대한 CRUD 작업이 가능하며 1차 캐싱, 쓰기 지연, 더티 체킹 등의 이점이 있다. 엔티티 매니저 팩토리(Entity Manager Factory) : 엔티티 매니저 팩토리는 엔티티 매니저를 만들어 제공하는 역할을 한다. 보통 애플리케이션에서 단 하나만 전역으로 존재하도록 한다. 엔티티(Entity) : 데이터의 집합을 의미한다. DB에서 어떤 테이블의 Row 하나를 Entity 하나에 꺼내와 작업한다. 영속성 ..