
내가 프로젝트를 시작한지 일주일 되었는데 글을 이제서야 쓰는 이유는...? 이 작업만 거의 일주일이 걸렸기 때문이다...ㅎㅎㅎ Open API를 가져다 써본 경험이 없어서 처음이었고 + 보통 JSON 형식이던데 KOPIS API는 XML형식이라 파싱하는 것부터 애를 먹었다ㅠㅠ 그리고 DB 넣는 거!!! 이게 너무너무 어려웠다... 하고 나니 간단한데... 암튼 구글링을 했을 때 정보가 부족하다는 생각이 들어서 이것부터 정리를 해보려고 한다. 🤍XML 형식의 Open API 데이터 JSON 형식으로 파싱하기 1. 가장 먼저 Open API를 사용하기 위해 필요한 서비스키를 신청한다. 이 과정은 간단하기 때문에 생략. 2. 그다음으로 사이트에 개발에 필요한 가이드라인이 올라와 있다. 나는 뮤지컬 목록을 불러..

개인 공부 + 이직 위해 미니프로젝트 해보기!! 시작한지 일주일정도 됐고 뒤늦게 블로그에 차근차근 정리해보기로 한다. 학원 스터디원들과 해본 것 말고 혼자서 처음부터 끝까지 다 해보는 것은 처음인데 혼자 하니까 확실히 공부는 많이 되는 것 같다. 💡 프로젝트 소개 뮤지컬을 기반으로 한 커뮤니티 사이트 구축 뮤지컬의 대중적인 인지도가 높아지고 있는 반면에 뮤지컬 팬들이 자유롭게 소통할 수 있는 커뮤니티 사이트는 아직 마련되어 있지 않음. 👩💻 작업 목표물 (아직 경험이 없는) Open API 가져와서 쓰기 -> 신청, XML JSON 파싱, DB까지 넣기 뮤지컬 목록 출력 로그인, 회원가입 뮤지컬 평점 회원 게시판 💡 개발 환경 Java 11 IntelliJ SpringBoot + Thymeleaf My..

여러 차례 까이고(??) 구글 애드센스 광고 게재를 시작한 지 벌써 두 달이 다되어간다! 다시 봐도 감격스러운 애드센스 게재 승인(??)메일 ㅋㅋㅋ 그리고 애드센스 누적금액 10달러 초과하면 구글 애드센스에서 핀번호(PIN)가 들어있는 우편물을 보내준다! 그래서 이 우편물이 내게 발송되었다는 것은 수익금을 받을 수 있는 최종 단계까지? 도달했다는 뜻이라고 한다 후훗. 아직 광고 클릭수나 잔고가 소소하긴 하지만 이런거 오니까 너무 신기함ㅋㅋㅋㅋ 암튼 우편물은 보통 2~4주 정도 걸린다고 하는데 발송 시점에서 4개월동안 핀번호를 입력 못하면 광고가 중단될 수 있어서 만약 한 달?정도 지났는데 우편물이 오지 않는다면 우편물 재발송을 신청하는 게 좋다고 한다. 구글..해외에서 멀리 오는 우편물이라 조마조마하면서..

웹 소캣 HTML5에 새로 추가된 스펙 실시간 양방향 데이터 전송을 위한 기술, HTTP와 다르게 WS라는 프로토콜을 사용함. SocketIO 웹 소캣을 편리하게 사용할 수 있도록 도와주는 라이브러리 실시간 경매 시스템 만들기 1. npm init / package.json 파일 작성 2. 사용자 모델, 제품 모델, 경매 모델 구성 user.js auction.js good.js DB에도 테이블이 생성되었다. 3. 로그인, 미들웨어 라우터 생성, 프론트 코드 작성(생략) 4. 서버센트 이벤트 사용하기 온라인 경매이므로 모든 사람이 같은 시간에 경매가 종료되어야함. 모든 사람에게 같은 시간이 표시되어야함. =>서버센트 이벤트를 사용해 시간을 받아오기(주기적으로 서버 시간 조회하는 경우 양방향 통신 불필요)..
슈퍼 타입/서브 타입 모델의 성능 고려 방법 업무를 구성하는 데이터 특징을 공통과 차이점의 특징을 고려하여 효과적으로 표현할 수 있음. 슈퍼 타입 : 공통 부분을 슈퍼 타입으로 모델링 서브 타입 : 공통으로부터 상속받아 다른 엔티티와 차이가 있는 속성만 모델링 논리적 데이터 모델에서 주로 이용(=분석 단계에서 많이 쓰임) 슈퍼/서브 타입 데이터 베이스 성능 저하 원인 3가지 트랜잭션은 항상 일괄 처리 & 테이블 개별 유지 => Union 연산에 의해 성능 저하 트랜잭션은 항상 서브타입 개별 처리 & 테이블 하나로 통합 => 불필요하게 많은 양의 데이터가 집약되어 성능 저하 트랜잭션은 항상 슈퍼+서브 타입 공통 처리 & 테이블 개별 유지 => 조인에 의해 성능 저하 슈퍼/서브 타입 변환 기준 데이터량이 소..

📖반정규화 기법 테이블 반정규화 테이블 병합 1:1 관계 테이블 병합 1:M 관계 테이블 병합 슈퍼/서브 타입 테이블 병합 테이블 분할 수직 분할 : 칼럼 단위의 테이블을 디스크 I/O를 분산처리하기 위해 테이블을 1:1로 분리하여 성능 향상(트랜잭션의 처리되는 유형을 파악이 선행되어야함.) 수평 분할 : 로우 단위로 집중 발생되는 트랜잭션을 분석하여 디스크 I/O 및 데이터 접근의 효율성을 높여 성능을 향상하기 위해 로우 단위로 테이블을 쪼갬 테이블 추가 중복 테이블 추가 : 다른 업무이거나 서버가 다른 경우 동일한 테이블 구조를 중복하여 원격조인을 제거하여 성능을 향상 통계 테이블 추가 : SUM, AVG 등을 미리 수행하여 계산해 둠으로써 조회 시 성능을 향상 이력 테이블 추가 : 이력 테이블 중 ..

📖성능 데이터 모델링의 개요 성능 데이터 모델링의 정의 일반적으로 성능이라고 하면 데이터 조회의 성능을 의미함. (데이터 입력, 수정, 삭제는 일시적이고 빈번하지 않고 단건 처리가 많은 반면 데이터 조회의 경우 반복적이고 빈번하며 여러 건을 처리하는 경우가 많기 때문) 성능 데이터 모델링이란 데이터 베이스 성능 향상을 목적으로 설계 단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다. 성능 데이터 모델링 수행 시점 프로젝트 수행 중에 있어 사전에 할수록 비용이 들지 않는다. 특히 분석&설계 단계에서 데이터 모델 성능을 고려한 데이터 모델링을 수행할 경우 성능 저하에 따른 재업무(Rework) 비용을 최소화할 수 있다. 분석&설계 단계에서 데이터베이스 처리 성능..

관계 엔티티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태, 행위로서 서로에게 연관성이 부여된 상태 엔티티 안에 인스턴스개 개별적으로 갖는 것(페어링)이고 이것의 집합을 관계로 표현함. -> 개별 인스턴스가 각각 다른 종류의 관계를 갖고 있다면 두 엔티티 사이에 두 개 이상의 관계가 형성될 수 있음. 관계의 분류 존재에 의한 관계 행위에 의한 관계 ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않고 표현했다면 클래스 다이어그램에서는 이것을 구분하여 연관 관계와 의존 관계로 표현하고 있는 것. 관계의 표기법 관계명 - 엔티티가 관계에 참여하는 형태를 지칭 관계가 시작되는 편을 관계시작점이라고 부르고 받는 편을 관계끝점이라고 부름. 둘다 관계명을 가져야하고 애매한 동사 피함, 현재형으로 표현함..