본문 바로가기

전체 글156

[데이터베이스] Data Analytics with SQL - DW, OLAP Data Analytics with SQL Overview Data analytics 예측을 위해 패턴, 관계, 모델 등을 추론하는 데이터 처리 주로 비즈니스적 결정에 사용됨 Common steps in data analytics 여러 소스로부터의 데이터를 한 곳에 모은다 데이터를 요약한 집합과 보고서를 생성한다 OLAP(Online analytical processing system)이 interactive qeury를 가능하게 함 예측 모델을 만든다 Data Warehousing Data warehouse (DW) 의사결정을 위해 다양한 데이터베이스들을 수집한 후 하나의 통일된 형식으로 저장한 데이터베이스들 관계형 DB를 근간으로 많은 데이터를 다차원 분석하여 의사결정에 도움을 주는 시스템 데이터 소.. 2021. 12. 5.
[디자인패턴] DAO 패턴 목적 업무와 DBMS를 분리하기 위해 사용 요소 문제 : DB를 사용하는 방법이 변경되면 클라이언트의 수정이 많아짐 해결 : 사용 방법의 분리 결과 : loose coupling, 확장성 정의 Dao : 모델에 대한 기본적인 CRUD 인터페이스 Value Object (Model Object) : Dao를 사용하여 데이터를 저장하는 단순 POJO(실제 데이터를 담는 자바 클래스) -> Dao 가 DBMS서 받은 데이터를 넘겨줄 때는 VO에 담아서 넘겨줌. DaoImpl에서 findById 메소드를 구현한 코드. public Person findById(int id) { Person person = null; try { String fmt = "SELECT * FROM %s WHERE id = %d"; S.. 2021. 12. 4.
[IntelliJ] 로그 한 줄 표시 - 좌우 스크롤, 자동 줄바꿈 위와 같이 로그가 길 경우 화면에 맞춰 자동으로 줄 바꿈이 될 경우 우측에 버튼을 눌러 보기 설정을 변경할 수 있다. 이렇게 화면에 맞춰 자동 줄바꿈 되는 것을 Soft-Wrap이라 한다. 이를 해제하면 자동 줄바꿈이 되지 않고 한 줄에 다 나오고 좌우 스크롤이 생긴다. 2021. 11. 18.
첫 회사 면접 후기 - 신입 백엔드 개발자, 스프링, 산업기능요원 강남의 한 스타트업에서 면접을 봤다. 기술면접 1시간의 경험을 쓰려한다. + 산업기능요원으로 검색 유입이 되길래 이를 알아보는 사람들을 위해 지원과정을 얘기하자면 로켓펀치, 원티드, 프로그래머스에서 병역특례를 모집하는 공고를 찾고, 해당 플랫폼의 이력서로 지원했습니다. 해당 기업에 지원하고 코테를 보라는 메일이 왔고, 이 코테에 합격하고 면접을 보게 됐습니다. 내가 했던 프로젝트 먼저 물어본 것은 내가 이력서에 제출한 프로젝트의 내용들이다. 로켓펀치 이력서에는 내가 했던 프로젝트들을 모두 넣지 않고, 세 가지를 넣었는데 모두 분야가 달랐다. 의외였던 것은 백엔드로 지원했기 때문에 백엔드에 관한 질문 위주로 할 줄 알았는데, 가장 먼저 물어보신 것은 AI 대회에서 상을 받았던 언택티콘에 대한 것이었다. 나.. 2021. 11. 10.
[데이터베이스] SQL 총정리 1 DB 생성 및 테이블 생성 releation=테이블, 컬럼=필드=열=속성, 튜플=행=로우=레코드 create database [DB명] create table [테이블명]( [필드명] [type(n)] [option], ... , [option]); type char(n) : n 만큼 고정된 크기 할당 varchar(n) : 필요한 만큼만 크기 할당. 최대 n만큼 할당함 int, smallint : 보통 int는 8바이트 smallint는 4바이트 numeric(d,p): 소수 d는 총 길이, p는 소수 몇 째 자리 까지표시할 지 numeric(7,3) → 0000.000 option not null, primary key, foreign key 등이 있음 여러 필드를 pk 또는 fk 지정할 경우 필드에.. 2021. 10. 27.
[디자인패턴] 반복자 패턴 (Iterator Pattern) 목적 여러 요소들을 담고 있는 객체이 내부 구조에 대한 이해 없이 각 요소를 순서대로 접근하고 사용할 수 있도록 방법을 제공 요소 문제: 자료 구조 클래스의 요소를 한 개씩 접근하는 API가 서로 다름 해결: 반복자 객체를 중간에 넣음 결과: 변경 최소화 구현 iterator(): 반복자에 대한 참조를 반환 (Iterator 자료형) hasNext(): 요소가 더 존재하는지 확인 (true / false) next(): 다음 요소 가져오기. Object를 반환하므로 변환해서 사용 // Iterator 사용 Iterator iter = cities.iterator(); while (iter.hasNext()){ String s = (String)iter.next(); System.out.println(s).. 2021. 10. 18.
[디자인패턴] 싱글턴 패턴 (Singleton Pattern) 목적 클래스가 한 개의 인스턴스만을 만들 수 있도록하고, 어디서나 생성된 인스턴스에 접근할 수 있도록 요소 문제: 여러 객체가 생성되면 상태 관리 어려움 해결: 객체 생성자를 중앙 관리 결과: 객체가 한 개임을 보장 구현 1. 기본 생성자을 private 으로 막는다. 2. static 함수로 객체를 생성하도록 함 public class Singleton{ private static Singleton uniqueInstance; private Singleton(){} // private으로 생성자 막음 public static Singleton getInstance(){ if (uniqueInstance==null){ uniqueInstance = new Singleton(); } return uniqu.. 2021. 10. 18.
[디자인패턴] 팩토리 패턴 (Factory Pattern) 목적 객체 생성용 인터페이스 정의 구체적인 클래스를 명시하지 않고 관련되거나 의존적인 객체들을 생성할 수 있는 인터페이스 제공 new는 인터페이스가 아니라 실제 클래스(concrete class)의 객체를 생성 OCP에 어긋남 (변경에 대해서 닫혀있지 않다) 생성할 객체가 늘어나면 코드 수정 필요 요소 문제: 실제로 구현되는 클래스의 객체를 생성할 때 객체의 종류가 달라지면 클라이언트 코드를 많이 수정해야함 해결: 생성을 분리해서 캡슐화 시킴 결과: 사용할 객체가 많거나 객체를 생성하는 방법이 변경 되어도 연쇄적인 수정이 적어짐 정의 Creator가 Factory에 해당한다. ConcreteCreateor는 Product타입의 ConcreteProduct들을 가져와 factoryMethod로 작업한다. .. 2021. 10. 18.