전체 글
프로젝션(SELECT)
프로젝션이란? SELECT 절에 조회할 대상을 지정하는 것 프로젝션 대상 : 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자등 기본 데이터 타입) SELECT m FROM Member m -> 엔티티 프로젝션 SELECT m.team FROM Member m -> 엔티티 프로젝션 SELECT m.address FROM Member m -> 임베디드 타입 프로젝션 SELECT m.username, m.age FROM Member m -> 스칼라 타입 프로젝션 DISTINCT로 중복 제거 엔티티 프로젝션으로 가져온 엔티티들은 영속성 컨텍스트에 관리되어 entity변경이 반영됨 ... Member member = new Member(); member.setUsername("member1"); member.s..
토비의 스프링부트 - 이해와 원리 #0 강의소개 및 학습 방법
스프링부트는 스프링을 사용하는 방법에 대한 고집스러운 의견을 가진 프레임워크이다. 스프링은 개발자의 대부분의 의견을 수용할 만큼 유연하다. 다만 빠르게 개발을 요구하고 진행하는 요즘 시장에서 스프링에 대한 충분한 고민과 이해가 부족한 개발자에겐 스프링은 오히려 적합하지 않기도 하다. 스프링 부트가 제공하는 도구를 사용하면 빠르게 스프링 기반 서버 어플리케이션을 제작할 수 있다. 다만 스프링부트가 어떻게 스프링을 사용하게 해주는지 이해하지 못하고 스프링으로 어플리케이션을 만드는 기본 이해가 없다면 한계점이 온다. 스프링 != 스프링부트 && 스프링부트 != 스프링의 대체제 스프링부트로 웹 어플리케이션을 제작해도 스프링 기반으로 제작하는 것이다. 학습 방법은 강의별로 예제를 따라해도 좋고 전체 강의를 둘러보..
내가 속한 모임 가져오는 쿼리와 내가 속하지 않은 모임 가져오는 쿼리
문제점 Gather라는 테이블에서 u_id가 포함됐는지 여부로 내가 속한 모임과 그렇지 않은 모임에 해당하는 데이터를 가져와야 하는 상황이다. 유저 정보로 해당 회원이 생성한 모임이나 참가한 모임정보를 가져오는 쿼리 유저 정보(nickname)로 pk인 u_id를 select하고 select한 u_id가 포함되지 않는 일정 정보를 가져오는 쿼리 해당 일정 정보는 현재 시간보다 늦은 모임이어야 하고 지역 정보와 카테고리 정보가 변수와 같아야 한다. 다음 쿼리를 사용해서 해결하였다. select * from gather g RIGHT join chatting c on g.g_id = c.gather_g_id where c.user_u_id = (select u_id from user where nicknam..
preventDefault()를 사용해 선택적 Submit하기
springboot와 thymeleaf mybatis를 사용해 개발중이다. 회원가입 후 지역정보를 설정하지 않은 사람에게 modal창으로 지역정보를 강제적으로 설정하려한다. datalist를 통해서 option을 통해 입력하게 하고 해당 데이터의 유효성 검사를 마친후 submit event가 작동시 isNotEmpty function을 통해 변수값을 체크하고 유효한 데이터일 경우 submit을 하려고 했다. 동작하지 않은 원인은 preventDefault() function은 해당 요소의 기본동작을 하지 못하게 하는 함수이다. 해당 함수를 조건문안에 위치시켜야 했는데 첫 줄에 작성하여서 동작하지 않았다. 조건문 안에 preventDefault()를 넣으니 원하는 대로 동작되었다. 변경 전 document..
JPQL(Java Persistence Query Language)
JPQL - 기본 문법과 기능 JPQL 소개 JPQL은 객체지향 쿼리 언어다. 따라서 테이블을 대상으로 쿼리하는 것이 아니라 엔티티 객체를 대상으로 쿼리한다. JPQL은 SQL을 추상화해서 특정 데이터베이스 SQL에 의존하지 않는다. JPQL은 결국 SQL로 변환된다. JPQL 문법 select m from Member as m where m.age > 18 엔티티와 속성은 대소문자 구분O (Member, age) JPQL 키워드는 대소문자 구분X (SELECT, FROM, where) 엔티티 이름 사용, 테이블 이름이 아님(Member) 별칭은 필수(m) (as는 생략가능)
[EASY] longest-palindrome
문제 유형은 Hash Table, String, Greedy 문제이다. 주어진 문자열로 만들 수 있는 가장 긴 회문의 길이를 반환하는 문제이다. /* 문제 파악 및 재정의 palindrome이란 회문 앞으로 뒤로 해도 같은 문장을 의미함 주어진 문자열 s로 만들 수 있는 가장 긴 회문의 길이를 반환하시오. 자료구조 및 알고리즘 설계 회문을 만들려면 무엇을 해야 할까 어떤 알파벳이 복수개 이상 존재한다면 해당 알파벳으로 앞 뒤를 설정하여 회문을 완성 할 수 있다. 그 외 단수개의 알파벳의 경우 가운데 넣어서 추가함으로써 회문의 길이를 늘릴 수 있음 Wednesday e?e 3 apple p?p 3 구현 중복되는 알파벳을 지울때마다 2씩 추가 남은 문자열의 길이가 0이 아니라면 +1 0이면 그대로 반환 */..