본문 바로가기
  • soobinhand의 기술 블로그
728x90

전체 글119

[git] gitignore 사용법 선제조건 프로젝트가 만들어져 있어야 한다. 순서 [Ctrl + Shift + A]를 누릅니다. Action 검색창을 열어 plugins 를 검색합니다. Marketplace 에서 .ignore 를 검색합니다. Install 합니다. 프로젝트에 마우스 우클릭을 하여 new 로 들어갑니다. .ignore File 의 .gitignore File 을 누릅니다. 설정 없이 Generate 를 누릅니다. 그 후 만들어진 gitignore 파일에 들어갑니다. 인텔리제이에서 자동으로 생성되는 파일들은 모두 이그노어 처리하면 됩니다. (.idea, .gradle, *.docx 등등) 그 후 이 파일도 깃허브에 push 해줍니다. 2021. 10. 31.
[git] 만약에 git remote repository 이름을 변경하고 싶다면? 선제조건 local repository와 remote repository가 이미 있어야 합니다. 순서 git remote repository의 이름을 먼저 변경해줍니다. 그 후 local 로 들어옵니다. 기존 터미널에 git remote set-url origin "새 주소"를 입력합니다. 2021. 10. 31.
[git] IntelliJ에서 new remote repository 만들기 선제 조건 local에서 이미 프로젝트를 하나 만들어 놓은 상태여야 합니다. 그래서 local에서 만든 것을 깃허브에 들어가지 않고 깃허브에 repository를 만들어봅시다. 순서 [Ctrl + Shift + A]를 누른 후, share project on github 을 검색합니다. 로그인이 되어있지 않다면 로그인을 해줍시다! Github에 생성할 저장소 정보를 입력하는 화면이 나옵니다. 대부분 local과 remote의 저장소 이름을 같게 하니 이름을 같게 해줍시다. 첫 번째 Commit을 위한 팝업창이 뜹니다. .idea 나 .gradle .build 등등(깃허브에 굳이 올리고 싶지 않거나 보안 상 올리면 안되는 것들 등등)은 선택하지 않고 나머지는 선택해서 커밋 메시지를 작성 후 OK 버튼 클릭.. 2021. 10. 31.
[JAVA] Priority Queue Priority Queue 우선순위 큐는 먼저 들어온 순서대로 데이터가 나가는 것이 아닌 우선순위를 먼저 결정하고 우선순위가 높은 원소가 먼저 나가는 자료구조입니다. 보통 힙을 이용하여 구현하는 것이 일반적입니다. PriorityQueue pq = new PriorityQueue(); PriorityQueue pq = new PriorityQueue(Collections.reverseOrder()); 첫 줄은 낮은 숫자 순, 두번째 줄은 높은 숫자순 우선순위 큐입니다. 메소드 종류 add(), offer() 우선순위 큐에 요소를 삽입합니다. 넣어지면서 동시에 정렬도 알아서 합니다. clear() 우선순위 큐의 모든 요소를 삭제합니다. contains(값) 해당 큐에 값이 있다면 true를 반환합니다. p.. 2021. 10. 30.
[프로그래머스] 더 맵게 - JAVA [프로그래머스] 더 맵게 - JAVA 이 문제는 가장 작은 두 수를 뽑으라는 말을 보자마자 우선순위 큐를 생각했습니다. 우선순위 큐는 큐와 다르게 FIFO 방식이 아니라 우선순위가 높은 원소가 먼저 제거되는 큐입니다. 우선순위가 가장 높은 값 = 스코빌 지수가 가장 낮은 값 우선순위가 그 다음으로 높은 값 = 스코빌 지수가 두번째로 낮은 값 을 대입해서 연산을 진행합니다. 원래의 값을 새로운 값으로 대체해야하므로 peek()이 아닌 poll()을 사용합니다. public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue queue = new PriorityQueue(); for (int i : scoville){ queue.offer.. 2021. 10. 29.
[JAVA] JDBC JDBC Java DataBase Connectivity 데이터베이스에 비종속적인 표준 자바 API입니다. 다양한 데이터베이스를 동일한 인터페이스로 사용할 수 있도록합니다. 각종 데이터베이스는 JDBC Driver를 통해서 연결하고 사용합니다. MySQL을 사용하다가 oracle을 사용하면 클라이언트 수정을 해야함 -> 귀찮 -> ODBC, JDBC 개발 배경이 됨 사용 방법 데이터베이스에 연결합니다. DriverManager.getConnection() 함수를 사용해서 데이터베이스에 연결합니다. - Connection 인터페이스 객체 반환 데이터베이스 URL이 필요합니다. "jdbc:mysql://localhost:3306/" + db_name JDBC 드라이버가 4.0 이상이면 자동으로 사용가능합니다.. 2021. 10. 29.
[디자인 패턴] DAO Pattern 목적 업무와 DBMS를 분리하기 위해 사용됩니다. 업무와 데이터 2계층을 분리하고, 서로 그 상태를 동일하게 유지합니다. 문제 DB를 사용하는 방법이 변경되면 클라이언트의 수정이 많아집니다. 데이터를 저장하는 방식이 다양합니다. (데이터베이스, 파일, XML, 엑셀 등등) DBMS에 따라 SQL문이 다를 수 있습니다. 해결방안 사용 방법의 분리 -> loose coupling, 확장성 데이터를 저장하는 방식을 분리하여 클라이언트의 변경 부분을 최소화 시킵니다. 설계 DAO 모델에 대한 기본적인 CRUD 인터페이스 DAOImpl DAO 인터페이스를 구현한 concrete class Value Object DAO를 사용하여 데이터를 저장하는 단순 POJO(Plain Old Java Object) 2021. 10. 29.
[디자인 패턴] Strategy Pattern 목적 같은 종류의 작업을 하는 알고리즘을 정의합니다. 각 알고리즘을 캡슐화하고 알고리즘들을 서로 바꿔 사용할 수 있도록합니다. 해당 패턴은 알고리즘을 사용하는 클라이언트로부터 독립적으로 알고리즘을 바꿔서 적용시킬 수 있도록합니다. 패턴이 필요한 경우 경우에 따라 서로 다른 여러 알고리즘이 존재할 때. 알고리즘이 실행 시점에 결정되어져서 조건문(if, switch...) 등을 이용해서 다른 알고리즘을 선택해야 하는 경우. 문제 알고리즘의 다른 버전이 존재해서, 중복으로 존재하거나 if문을 이용해서 선택해야하는 경우. OCP 를 위반하게 됩니다. 결국 변경되는 부분과 변경되지 않는 부분을 분리하여 설계하자는 것이 이 패턴의 목적입니다. 해결방안 중복을 공통화시킵니다. 실행 시점에 맞는 알고리즘을 호출하도록 .. 2021. 10. 29.
[데이터베이스] Data Analytics with SQL Data analytics 예측을 위한 패턴, 상관관계 또는 모델을 추론하기 위한 데이터 처리를 의미합니다. 보통 회사에서 의사 결정을 할 때 사용하고, 현재 아주 중요한 작업으로 인식되고 있습니다. Data Warehouse 에 여러 데이터 소스들을 모으고 OLAP을 사용하여 분석을 합니다. 데이터 웨어하우스 (Data Warehouse) 효율적인 의사결정을 위해 다양한 데이터베이스들을 수집한 후, 하나의 통일된 형식으로 저장한 데이터베이스들입니다. 단순한 데이터 저장고가 아니라, 관계형 데이터베이스를 근간으로 많은 데이터를 다차원 분석하여 의사결정에 도움을 주는 시스템입니다. 각각의 DBMS에서 축적한 데이터들을 한곳에 모아서 분석할 때 DW를 사용합니다. 보통 과거의 데이터는 축적하지 않는데 이 D.. 2021. 10. 29.
[데이터베이스] Key Key 하나의 tuple을 다른 tuple들로부터 구별하는 방법입니다. 종류에는 superkey, candidate key, primary key, foreign key가 있습니다. Superkey 고유한 값들로만 있는 값들의 집합입니다. 중복이 있다면 superkey가 될 수 없습니다. 예를 들어서 주민 번호는 superkey가 될 수 있지만 사람 이름은 될 수 없습니다. Candidate key 우선 정의는 이렇습니다. A minimal superkey for a relation. 즉 minimal superkey 는 candidate key입니다. 예시 {ID, name}은 superkey입니다. 하지만 부분집합, 즉 {ID}, {name}에서 {name}은 superkey가 아니지만 {ID}는 s.. 2021. 10. 29.
728x90