Backend 16

[Mock] Mock, 도대체 뭐야? (Feat. 테스트코드)

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 프로젝트를 진행하며 본격적으로 테스트코드를 작성하기 시작했다. 강의를 보면서 대부분의 강의에서 모킹(Mocking)을 활용한 테스트코드 작성을 하던데, 아무리 봐도 DB 커넥션이 없는것이다. 내가 생각한 테스트코드는 DB에 직접 CRUD 작업을 거쳐서 하는것으로 알고있었는데... 그게 아니었다. 본 포스팅에선 테스트코드의 목적과, 가상 맵핑을 도와주는 Mock 프레임워크에 대해 알아보도록 하자. 참고 https://happy-coding-day.tistory.com/entry/Mock-%EA%B0%9D%EC%B2%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C-%EC%99%9C-%EC%8D%A8%EC%9..

Backend/Test 2023.11.01

[MySQL, JPA] Schema-validation: missing column [컬럼명] in table [테이블명]

목차 문제 사항 JPA + MySQL 환경에서 작업을 진행하는 도중, 다음과 같은 에러가 발생했다. Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory; nested except..

Backend/DB 2023.10.26

[CS스터디-헤드퍼스트 디자인 패턴] 3. 반복자 패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 이번 포스팅에선 반복자 패턴에 대해 다뤄보도록 하겠습니다. 반복자 패턴은 접근기능과 자료구조를 분리시켜서 객체화 하여, 서로 다른 구조를 가지고 있는 저장 객체에 대해서 접근하기 위해 인퍼페이스를 통일시키고 싶을 때 사용됩니다. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250&lptag=10304982I13700178772&itime=20221210115503&pageType=PRODUCT&pageValue=6403382250..

[CS스터디-헤드퍼스트 디자인 패턴] 2. 커맨드 패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 저번 시간에 이어서 이번 시간엔 커맨드 패턴에 대해서 공부해보도록 하겠습니다. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250&lptag=10304982I13700178772&itime=20221210115503&pageType=PRODUCT&pageValue=6403382250&wPcid=15730553344490846187221&wRef=&wTime=20221210115503&redirect=landing&gclid=Cj0..

[CS스터디-헤드퍼스트 디자인 패턴] 1. 전략패턴

목차 이 글은 Notion에서 작성 후 재편집한 포스트입니다. 서론 스터디원들과 책 하나를 정해서, 각자 파트를 공부하고 주 1회 미팅마다 발표하는 시간을 갖기로 했습니다. 그렇게 해서 결정된 책은 [헤드퍼스트 디자인 패턴] 이라는 책입니다. 안그래도 디자인 패턴에 대한 무조건적인 두려움이 있었는데, 이번 기회에 조금씩 알아가보는 시간이 되었으면 좋겠습니다. 그림으로 이루어져 있어서 책은 두껍지만 생각보다 술술 읽혔기에, 정말 재밌게 공부했네요. 참고 https://www.coupang.com/vp/products/6403382250?itemId=13700178772&vendorItemId=80951605437&src=1042503&spec=10304982&addtag=400&ctag=6403382250..

[ORACLE] TRUNC 함수 사용법

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 목차 개요 TRUNC 함수에 대해 알아보자. 시간이나 숫자를 절사할 때 쓰는 함수로, 시간의 경우 TO_DATE 함수를 쓰면 귀찮아지니.. 사용가능하다면 이걸 잘 활용해주도록 하자. 참고 www.w3resource.com/oracle/datetime-functions/oracle-trunc(date)-function.php Oracle TRUNC (date) function - w3resource Oracle TRUNC (date) function: The TRUNC (date) function returns the date with the time portion of the day truncated to a specific unit of meas..

Backend/DB 2021.01.21

[Oracle] ORA-01790: expression must have same datatype as corresponding expression

목차 문제 사항 원인 분석 union을 하면서 발생하는 문제이다. 한마디로, 데이터 타입이 맞지않아서 생기는 문제임 해결 방법 예시 SELECT 1 FROM DUAL UNION SELECT '1' FROM DUAL 이런식이다. 상호간 데이터 타입을 다음과 같이 맞춰주면 해결된다. SELECT '1' FROM DUAL UNION SELECT '1' FROM DUAL // OR SELECT 1 FROM DUAL UNION SELECT 1 FROM DUAL 참고 withthisclue.tistory.com/entry/Oracle-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0-ORA-01790-expression-must-have-same-datatype-as-corresponding-ex..

Backend/DB 2020.12.07

[Oracle] ORA-02437: cannot validate (~~) - primary key violated

문제 사항 원인 분석 기존에 있던 PK를 변경해야되서 삭제 후 다시 설정하려고했는데, 이런 에러가 났다. 검색해보니까 중복된 값이 존재해서라고 한다. 해결 방법 1. 직접..지우기 이거는 뭐.. 어쩔수가없다. 어떤 내용을 지워야되고 어떤걸 남겨야되는지는 사람이 판단해야 하기때문에.. PK속성을 가지고있던 컬럼들이 어떤게 중복되는지 봐야한다. 필요하다면 SELECT 문으로 뽑아내서 구별 한 뒤에 삭제하던지. 그렇게해야지. 다음은 중복되는 row를 삭제하는 쿼리다. 참고참고~ 만약 기본키가 여러개라면 PARTITION BY 컬럼명 1 -- num의 값이 1초과인 데이터들만 삭제 ) ); 참고 m.blog.naver.com/PostView.nhn?blogId=yka21&logNo=70019484646&prox..

Backend/DB 2020.10.06

[Oracle] date 타입 컬럼 String으로 가져오기

이 글은 Notion에서 작성 후 재편집한 포스트입니다. 개요 date형식으로 db에 저장되어있는 값을 String으로 입맛대로 변환시켜 불러보자! 참고 https://enzycut.tistory.com/entry/%EC%98%A4%EB%9D%BC%ED%81%B4-DATE-%EB%82%A0%EC%A7%9C-%ED%83%80%EC%9E%85 [오라클] DATE 날짜 타입 [오라클] 날짜 타입 String으로 변환하기 오라클에서 날짜를 가지고 오는 방법 예제 SELECT SYSDATE FROM DUAL; 2017-12-10 00:00:00 위와 같이 년월일 시분초순으로 나타난다. 다음을 String형식으로 변환하면... enzycut.tistory.com 진행 과정 1. date타입에 대하여 기본적으로 YY..

Backend/DB 2020.07.30

[DBeaver] 설치하기 및 DB연결

개요 프로젝트 관련해서 회사 놋북에 DB 툴을 깔려고 했는데, 기존에 쓰던 HeidiSQL을 쓰려고 했지만, 더 좋은게 없나 찾아보던 도중, DBeaver라는 무료 툴이 있다는 것을 알게됐다. 그래서 한번 알아봤는데.. 평도 압도적이었다. 도대체 얼마나 좋길래? 직접 깔아보았다. DBeaver의 장점 1. 무료다. 2. 여러 DB를 지원한다. 기존에 쓰던 HeidiSQL은 Mysql만 지원한다. 그래서 오라클Oracle, MS-SQL, MySQL, PostgreSQL, MariaDB, 몽고 DB 등의 다른 db는 따로 설정을 해줘야 하는데, DBeaver는 기본으로 지원해준다. 진행 과정 1. 다운로드 및 설치 https://dbeaver.io/download/ Download | DBeaver Comm..

Backend/DB 2020.07.21