본문 바로가기
반응형

분류 전체보기714

JPA 개요 JPA는 Spring에서 기존에 Mybatis 사용을 대체하는 새로운 기술로 많이 사용합니다. 사용 방법과 문법은 공부했지만, 어떤 기술이고 어떻게 등장했는지 조사해보려고 합니다. 텍스트로만 보면 이해가 잘 되지 않기 때문에, 사진을 보고서 이해해보겠습니다. ORM, JPA, Spring Data JPA, Hiberante 등을 같이 살펴보겠습니다. ORM(Object–Relational Mapping) ORM은 객체지향 패러다임을 사용하여 이기종 시스템끼리 데이터를 변환하기 위해서 사용하는 기술입니다. Java에서 ORM 계층은 Java 클래스와 객체를 관계형 데이터베이스에 저장하고 관리할 수 있도록 변환합니다. 기존에 SQL DBMS와 같은 데이터베이스는 객체지향적이지 않고, 테이블에 정의된 i.. 2021. 8. 28.
CDATA란? CDATA란? CDATA는 Character Data(문자 데이터)의 약자로, 마크업 언어(XML)에서 데이터를 표시하기 위한 것입니다. 특수문자들을 태그가 아니라 데이터로 명시하고 싶을 때 사용합니다. 보통 XML 파일에서 쿼리 짤 때 많이 사용합니다. 이미 정의된 &lt, &gt, &amp 등을 사용할 수도 있지만 가독성을 너무나 해치기 때문에 CDATA를 이용하는 것이 가독성에도 훨씬 좋습니다. 사용법 1. CDATA 영역은 다음 순서로 시작합니다. 예시 CDATA 사이에 포함된 모든 문자는 문자 그대로 해석됩니다 만약 아래와 같은 문자열을 나타내고 싶다면? 중요점 : , / 와 같은 문자 데이터를 별도로 처리해야 합니다. //출력.. 2021. 8. 27.
oracle ROWNUM & ROW_NUMBER 페이징을 구현할 때, ORACLE을 사용하면 ROWNUM을 사용한다. 어떤 방식으로 문서에 소개하고 있는지 궁금했고 나아가 관련 함수인 ROW_NUMBER도 궁금하여 같이 조사하게 되었다. ROWNUM이란? ROWNUM을 사용하면, 각각의 row에 순서대로 값을 부여한 새로운 칼럼이 생성된다. ( 1, 2, 3 ... ) 또한, 쿼리로 리턴된 row의 갯수를 제한할 때도 사용이 가능하다. SELECT * FROM employees WHERE ROWNUM < 11; 만약에 ORDER BY를 서브쿼리에 사용하고 탑 레벨에 ROWNUM을 사용하면, ROW가 정렬된 이후에 ROWNUM 조건을 추가할 수 있다. 예를 들어, 다음 쿼리는 employee_id의 가장 작은 10개의 숫자를 리턴한다. 이것을 top-N.. 2021. 8. 27.
TIL_210825 1. Facts(사실, 객관) - DDD 7~9장 읽기 - 회사 필터점검예정 페이지 개선 요청 개발하기 2. Feelings(느낌, 주관) - 회사에 잘못된 코드가 있었는데, 마이 페이지 필터점검예정일 목록에서 더보기를 클릭해서 나오는 추가적인 일정은 모바일에 퍼블리싱이 적용되지 않았습니다. 기존에 1페이지에 있는 일정은 퍼블리싱이 잘 되었으나 더보기를 통해 추가한 일정들은 퍼블리싱이 추가되지 않았습니다. 퍼블리싱은 인력이 없고 제가 만질 실력이 없기에 더보기 기능을 삭제하고 한꺼번에 부여주는 방법을 택했습니다. 나름 타당한 근거를 들자면, 필터점검은 일정기간 달을 두고 이루어지기에 데이터가 많지 않다는 점입니다. 또한, 해당 필터점검예정일이 날짜별로 정렬되어 있지 않는 큰 문제점을 발견했습니다. 이것은.. 2021. 8. 26.
TIL_210824 1. Facts(사실, 객관) - 회사 상담신청에 따른 실적 처리 개발하기 2. Feelings(느낌, 주관) - 회사 홈페이지에서 상담신청에 따라 해당 신청을 안내한 파트가 실적을 가져가도록 되어있는데, 하나의 파트가 전부 가져도록 하드코딩 되어있었습니다. 그래서 다른파트에서,, 우리가 안내한 고객들은 우리실적으로 db에 넣어줘!라는 요청이 왔습니다. 순간 이번 뿐만이 아니라 A,B,C 등 여러 파트가 요청해 올 것이라는 예감이 들었습니다. 따라서, 기존 코드를 유지보수하기 좋은 방향으로 수정해야함을 느꼈고 여러 전략들을 생각해봤습니다. 결론적으로 서비스로직 자체의 분기가 아니므로 DB를 활용해보기로 했습니다. 그렇다면, DB에서 어떤 부분이 가장 유의미한 차이가 있을까? 고민해보니 판매채널 칼럼이 가.. 2021. 8. 26.
TIL_210823 1. Facts(사실, 객관) - vue.js 완벽 가이드 외부 라이브러리 모듈화, 컴포넌트 디자인 패턴 강의 2. Feelings(느낌, 주관) - vue.js 완벽 가이드 나머지 강의를 들었습니다. 이전에는 엄청나게 머리에 집어넣고 많이 접해보자라는 생각으로 접근했는데, 이번에 들을 때는 천천히 머리속으로 순서와 그림을 그려가면서 했습니다. 코드 작성보다 추정과 설계가 싸다는 글을 읽고 코딩을 짜기 이전에 충분히 머리속으로 이해하고있어야 함을 느끼며 적용해보려고 했습니다. 잘 모르겠을 때, 한번 더 깊게 생각을 해보는 방식으로 하다보니 명료하게 이해가 잘 되었습니다. 이전에 모호하거나 절반만 이해했던 props나 event 과정을 더욱 잘 이해할 수 있었습니다. 3. Findings (배운 점) 4... 2021. 8. 26.
TIL_210820 1. Facts(사실, 객관) - 네이버 검색기능 API 구현 1,2,3 작성 - fastcampus 강의 2. Feelings(느낌, 주관) - 네이버 API를 이용하여 장소검색, 이미지검색을 구현했습니다. 요즘 추상화와 인터페이스 사용에 관심이 많습니다. 어떻게 하면 기존 코드를 좀 더 객체지향적으로 짤 수 있을지, 개선할지 고민합니다. 이번에는 naver api를 사용했지만, 만약 kakao나 다른 open api가 추가된다면? 어떻게 유지보수를 편하게 할 수 있을까? 고민을 합니다. 상황을 대비해 interface로 검색 기능을 분기하도록 만들 수 있을 것입니다. 3. Findings (배운 점) - AssertAll 내용 정리 https://escapefromcoding.tistory.com/3.. 2021. 8. 24.
TIL_210819 1. Facts(사실, 객관) - assertAll 사용법 정리 - fastcampus 강의 2. Feelings(느낌, 주관) - 테스트코드를 짤 때, AssertJ의 asesrThat만 주구장창 사용하다가 assesrtAll이라는 문법을 발견하고 해당 기능을 사용해보았습니다. 또한 관련 내용을 정리해봤습니다. 처음에는 계속 반복해서 같은 양식으로 코드를 작성하면서 익히고 이후에는 조금씩 변화를 주어 다양한 방법으로 코드를 작성한다면 더 깊고 넓은 경험을 할 수 있다고 생각이 들었습니다. 정해진 기술에 모든 코드를 짜맞추어넣는 것이 아닌, 필요에 따라서 기술을 선택하는 습관을 들이려고 노력합니다. 3. Findings (배운 점) - AssertAll 내용 정리 https://escapefromcodi.. 2021. 8. 24.
TIL_210818 1. Facts(사실, 객관) - swagger 사용법 정리 - fastcampus 강의 2. Feelings(느낌, 주관) - Swagger 사용법을 정리했습니다. 백엔드에서 작성한 REST API를 Swagger를 통해 자동문서화를 하여 프론트엔드에 제공한 경험이 있습니다. 의존성 추가만 해주면, 자동으로 API 문서를 만들어주는 편리함을 경험했습니다. 물론 Spring Doc를 통해 만드는 방법이 Spring Boot에 좀 더 친화적인 방법이라고 생각하지만 이번 기회에 Swagger를 좀 더 자세히 알 수 있었습니다. 직접 Editor로 명세 작성과 Codegen을 통한 간단한 코드 생성도 가능했습니다. 항상 공식문서를 보면 좀 더 상세하고 다채롭게 알아갑니다. 단순히 자동화를 넘어서서, 응답코드나.. 2021. 8. 24.
반응형