본문 바로가기

전체 글102

Git ) rebase -i 프로젝트를 할 때나 공부할 때 항상 branch를 따서 진행하는 습관을 들이고 있다. 사실 리베이스는 주로 협업할 때 많이 쓰이는 편이며, 현재의 나는 쓸 일은 없지만 그래도 알고 있는게 좋은 명령이 이므로 작성을 해봅니다.. * 리베이스란? 리베이스를 가지고 2개의 역할을 할수 있다고 알고 있다. 1. 깃의 베이스를 변경한다 (?) 2. 커밋을 합친다. 1번의 경우 예를 들면 2/1일의 master 브랜치에서 따온 A 브랜치를 작업을 했으나 시간이 오래 흘러서 당일 2/10일의 master 브랜치에서 따온것 처럼 베이스를 옮기는 작업을 하는 경우 2번의 경우 Git에 push를 하게되면 history가 남는데 그때 단 하나의 로그를 남겨서 사용중인 git 의 history를 좀더 깔끔하게 남겨두고자 할.. 2021. 3. 20.
MyBatis) org.apache.ibatis.binding.BindingException:Parameter 'count' not found. Available parameters are [arg1, arg0, param1, param2] - @Param 을 써라.. MyBatis를 이용한 SQL Mapper는 불러오는 메서드당 하나의 파라미터를 읽는다.. 이게 무슨 의미인가 하면 // ClothesMapper.. //추가 public Long insert(ClothesVO vo); //상세(목록) public ClothesVO read(Long cno); //수정 public boolean update(ClothesVO vo); //삭제 public boolean delete(Long cno); //전체 목록 public List getList(Criteria cri); // 조회수 증가 및 감소 public void updateViewCnt(@Param("cno")Long cno, @Param("count")int count); public int getTotal.. 2021. 3. 20.
display: table , table-cell 프로젝트 제작 겸 특정 사이트를 모방해서 따라만들면서 연습하는 도중에 발견한 CSS이다.. * 특정 사이트에서 만들어져 있는 화면. 클론코딩 중에 위의 표를 만드려고 했을 때 우선 간단하게 따라서만드는 것에 의미를 두고 있기 떄문에 우선적으로 기억난 것은 display: flex 를 이용해서 해당 div박스의 레이아웃을 잡으려고 했다. 그렇지만 개발자도구를 통해 확인해본 결과 display: table이라는 속성을 사용하고 있었다. display: table 속성을 사용하기 위해서는 다음과 같은 방법으로 진행해야한다. 1. 부모 태그가 display: table 을 사용한다. 2. 자식 태그가 display: table-cell 을 사용한다. * 굳이 이 아니라 해당 CSS를 사용하는 이유는 vertic.. 2021. 3. 19.
Security OAuth 초기 설정 및 간단 설명 프로젝트에 소셜로그인 관련 설정을 하기 이전에 사용하고자 하는 서비스의 공식홈페이지에서 OAuth 관련 설정을 하기위해 프로젝트를 등록해야한다. 해당 과정은 생략하고 프로젝트에서 설정하는 과정만 추가. 1. build.gradle 파일에 OAuth 관련 라이브러리를 추가해야한다. 만약 프로젝트 생성시 이미 추가를 했을 경우 할 필요 없다. // build.gradle dependencies { implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' } 2. 추가 이후 application.properties 설정을 변경해야한다. 여러개의 OAuth 를 사용한다면 별도의 설정파일을 생성하는 것이 좋다. 설정 파일의 이름은 "a.. 2021. 3. 11.
(2) QuerydslRepositorySupport - Tuple 활용 동일한 엔티티 객체 단위의 데이터를 가져올 떄는 크게 상관이 없지만 각각의 다른 타입의 데이터를 추출할 때 많이 사용된다. Tuple을 이용한 간단한 예제를 작성해서 어떤식으로 작성을 해서 사용하는지 익혀놓는다. @Override public Board search() { //1. Q도메인 생성 QBoard board = QBoard.board; QReply reply = QReply.reply; QMember member = QMember.member; // 2. from 절 설정 JPQLQuery jpqlQuery = from(board); // 3. join jpqlQuery.leftJoin(member).on(board.writer.eq(member); jpqlQuery.leftJoin(reply.. 2021. 3. 9.
(1) QueryRepositorySupport 메모 용도로 사용되는 포스팅입니다. 우선 기본적으로 기존에 사용하던 Querydsl 설정이 적용되어 있어야 한다. 일반적으로 기본적인 CRUD 는 QuerydslPredicateExecutor를 이용해서 사용이 가능하다. like, between, gt 등등 여러가지를 사용해서 쿼리를 구성할수있는데 left outer join , inner join같은 조인이나 fetch를 사용할 수 없는 한계가 있으므로 JPQL로 검색하기위해서 JPQLQuery를 사용하여 처리할수있게 QuerydslRepositorySupport 라는 클래스를 상속해서 사용해야한다. 이것은 Querydsl 라이브러리를 직접 이용해서 구현할때 사용한다. 1. 인터페이스 와 해당 인터페이스를 구현할 클래스를 생성합니다. 쿼리 메서드나 @.. 2021. 3. 9.