전체 글

전체 글

    [데이터베이스 설계] 데이터 모델링

    [데이터베이스 설계] 데이터 모델링

    | 모델링이란? - 모델링이란? 비즈니스 목적에 맞게 현실세계의 데이터를 도식화하는 것 - 왜 모델링을 하는가? 비즈니스 목적에 부합하면서도, 효율적인 자원 관리를 하기 위해 - 모델링의 특징 추상화 현실 세계의 실재를 도식화 하는 과정 단순화 현실 세계의 현상을 약속된 규약에 의해 제한된 표기법 및 언어로 쉽게 표현하는 과정 명확화 모두가 이해할 수 있도록 모호함을 제거하고 정확하게 현상을 기술하는 과정 - 모델링을 바라보는 다른 시각 모델링 데이터 업무의 내용 (무엇을 - Data). - 요구사항 X는 어떤 데이터와 연관되는가? 프로세스 업무의 처리 (어떻게 - Process). - 요구사항 X와 연관된 기존 시스템은 뭔가? - 요구사항 X를 위한 전반적인 프로세스는 뭔가? 상관 관계 데이터와 프로세..

    [자바 프로그래밍] JDBC를 통해 DB의 데이터 처리하기

    [자바 프로그래밍] JDBC를 통해 DB의 데이터 처리하기

    | 개요 📌 사전 개념 - 5가지 정보 준비, 드라이버 로드, Statement/Preparedstatement/Callablestatement 📌 데이터 CRUD하는 방법 | 사전 개념 1. 드라이버 로드 - JDBC API는 앞서 말했듯 라이브러리이다. - JDBC driver는 이 JDBC 내에서도 특정 JDBC와 연결할 수 있는 클래스이다. - 따라서, JDBC를 통해 DB를 연결하려면 JDBC Driver 클래스를 로드하는게 필요하다. try{ Class.forName("패키지명.클래스명"); } catch(ClassNotFountException e) { e.printStackTrace(); } 더보기 [ Driver 클래스의 패키지명을 알아내는 방법 ] - 아래와 같이 Driver클래스를 라..

    [자바 프로그래밍] JDBC 설치하기

    [자바 프로그래밍] JDBC 설치하기

    | JDBC 설치하기 1. JDBC를 다운받는다. (1) DBMS사이트를 통해 다운 받기 https://mariadb.com/downloads/connectors/connectors-data-access/java8-connector/ (2) Maven Repository에서 다운 받기 https://mvnrepository.com/ - 국비 과정에서 배운 Maven Repository.. 여기에 가서 다운 받으면 된다고만 배웠지 그 사이트가 뭔지를 몰랐다.(참...) - 이번 기회에 다시 검색해보니, Maven Repository는 아파치 재단에서 관리하는 각종 라이브리러 다운로드 사이트였다. 참고로 아파치 재단은 톰캣과 같은 오픈 소스 프로그램을 다수 만든 재단이다. - 이 사이트에 들어가서 "DBMS..

    [자바 프로그래밍] DB연결을 위해 필요한 것

    | 개요 자바 프로그램과 DB를 연결할 때 필요한 것 📌 JDBC 드라이버 📌 5가지의 정보 | JDBC와 JDBC 드라이버 💡 JDBC (Java Database Connectivity) API - JDBC가 무엇인지 정확히 설명해주는 자료가 없어서 해외 자료를 찾아보니 IBM에 아래와 같은 설명이 있었다. Java™ database connectivity (JDBC) is the JavaSoft specification of a standard application programming interface (API) that allows Java programs to access database management systems. Using these standard interfaces and clas..

    [자바 프로그래밍] 회원정보와 회원가입처리 클래스

    [자바 프로그래밍] 회원정보와 회원가입처리 클래스

    | 현실 세계의 회원정보 데이터 -> 추상화(모델링) - 추상화(모델링) : 앞어서 OOP를 정리했을 때, 추상화란 곧, 모델링이라고 이야기했다. - 백엔드 프로그래밍을 할 때에는 현실 세계의 데이터를 분석하고, 이를 클래스화하는 연습을 해야한다. - 수업 시간에 배운 예시는 DB를 처음 배울 때 자주 소개되는 회원가입 정보였다. - 배운 걸 복습하기 위해서 나는 네이버의 회원가입 페이지를 참조해보았다. [1] 회원가입 시작 페이지(동의체크) - [필수]로 되어 있는 체크란은 네이버에서는 DB에 저장해두는 내용이겠지만, 제외하고 [선택]부분을 넣어주는 걸로 한다. [2] 회원가입 상세 페이지 - 아래와 같이 데이터를 받는 걸 볼 수 있었다. - 필수 정보 : 아이디, 비밀번호, 이름, 생년월일, 성별, ..

    [자바 프로그래밍] JVM과 자바 개발 환경 구축

    [자바 프로그래밍] JVM과 자바 개발 환경 구축

    | JVM이란? - 자바 가상 머신의 약자이다. - 각각의 운영체제는 서로 다른 방식의 파일 시스템(환경)을 가지고 있다. - 자바 소스 코드를 컴파일한 .class 파일을 실행시키기 위해서는 각 OS에 맞게 파일 실행이 필요한데, 자바 가상 머신을 사용하면 OS에 맞게 .class파일을 실행(.exe로)할 수 있다. ※ 자바와 가상머신에 대한 내용 참고 https://why-dev.tistory.com/188?category=946326 객체지향 프로그래밍이란? | 객체지향 프로그래밍 / 절차지향 프로그래밍 절차 지향 프로그래밍(PP) 객체 지향 프로그래밍(OOP) 특징 일련의 동작(모듈, 함수)를 순차적으로 실행 객체(속성 + 기능) 간의 상호작용을 이용 포 why-dev.tistory.com | 자..

    [알고리즘] DP (동적 계획법)

    [알고리즘] DP (동적 계획법)

    | 동적계획법이란? - 복잡한 문제를 여러 개의 간단한 문제로 분리하여 해결하는 방법 - 원리 및 구현 방법 1) 큰 문제를 부분적으로 분리하여 분석한다 --> 부분적인 문제의 결과값은 항상 동일해야한다. 2) 1)을 통해 알게된 규칙을 통해 점화식을 생성한다. 3) 기존 배열과 dp배열을 어떻게 만들지 구상하고 4) 아래 두 가지 방법 중 적절한 구현 방법에 따라 수도 코드를 작성한다. 타뷸레이션 = 바텀-업 - for문을 사용하여 구현 메모이제이션 = 탑-다운 * 이미지 출처 : 나무위키 - 재귀를 사용하여 구현 | 피보나치를 통해 보는 동적 계획법 - 점화식을 통해 재귀로 푼 피보나치 문제 풀이는 아래와 같았다. // 피보나치 수열 // 재귀 (일반풀이 방법) - O(n^2), 계산했던 부분도 다시..

    모듈러 산술

    | 모듈러 산술 - 모듈러 (=mod = %)는 덧셈, 뺄셈, 곱셈에 있어서 아래와 같은 산술을 할 수 있는 특징이 있다. - 알고리즘 문제를 풀다보면 애매하게 정수 Max값을 넘을랑 말랑 하는 데이터가 있기도 한데, 그럴 때 이 모듈러 산술을 고려해서 문제를 풀면 굳이 Long 타입 변수를 쓰지 않아도 Int만으로 충분히 풀이가 가능하다. (a + b) % C = (a % C + b % C) % C (a - b) % C = (a % C - b % C) % C (a * b) % C = (a % C * b % C) % C | 참고할 만한 문제 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 ..

    [알고리즘] 분할정복

    [알고리즘] 분할정복

    | 분할정복이란? - 폰노이만 구조를 만든 그 폰노이만에 의해 소개된 알고리즘 - 간략하게 말하면, 큰 문제를 작은 단위로 쪼갠 후 다시 조합하여 문제를 해결하는 방법을 말한다. 분할: 문제를 더이상 분할할 수 없을 때까지 동일한 유형의 여러 하위 문제로 나눈다. 정복: 가장 작은 단위의 하위 문제를 해결하여 정복한다. 조합: 하위 문제에 대한 결과를 원래 문제에 대한 결과로 조합한다 *출처 : 나무위키 | 분할정복 과정 1. 문제를 하나 이상의 작은 단위로 분할 2. 작은 단위에서 부분적인 해결 3. 부분들의 해결을 조합해 전체 문제의 해답을 찾는다. function F(x): if F(x)가 간단 then: return F(x)를 계산한 값 else: x 를 x1, x2로 분할 F(x1)과 F(x2)..

    [알고리즘] 그리디

    [알고리즘] 그리디

    | 그리디란? - 그리디 알고리즘은, 매 선택에서 지금 이 순간 가장 최선이라 생각되는 답을 선택해 결과를 도출하는 것을 말한다. - 여기서 Greedy을 직역하면 '탐욕'을 뜻한다. - 왜 '탐욕'이라는 말을 쓸까? 그건 지금 이 순간의 부분적인 최적해가 항상 종합적인 최적해는 아닐 수 있음에도, 욕심쟁이와 같이 지금 보는 이 부분적인 선택이 전체의 최선이라 단정짓기 때문이다. rf. 여러 개의 도시가 연결된 도로가 있고, 그 도로 간에 이동 거리가 각각 다른 상황에서 가장 이동거리가 짧은 거리를 찾아야한다고 할 때, 그리디를 쓰면 가장 짧은 도로들을 선택하는 게 될 수 있다. - 정확함 보다는 적당히 맞는 답을 찾을 때 좋은 알고리즘이다. 따라서, 그리디 알고리즘을 근사 알고리즘으로도 부른다. - 언..