목록분류 전체보기 (130)
바닥코딩
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/YyOXK/btqCrknYbTY/gvkBAG5uVYuC1ASyEhZ7f1/img.png)
이번 포스팅에서는 mysql이나 mariaDB를 활용할 때 다른 개발자들이 개발한 덤프롤 통해 데이터베이스 스키마와 데이터를 삽입해 보겠다 데이터 베이스를 공부할 때 많은 사람들이 직접 sql 문장을 사용하여 실습을 해보려면 테이블 형태의 데이터 베이스가 있어야 하는데 이럴 경우 직접 insert를 모두 해야하는 번거로움과 관계 및 index 설정을 해줘야 하는 어려움이 있다 이럴 경우 미리 다른 개발자가 짜놓은 sql 파일문을 받아 데이터 베이스를 사용할 수 있다 https://github.com/datacharmer/test_db datacharmer/test_db A sample MySQL database with an integrated test suite, used to test your app..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/tdPkk/btqCrknXj3c/i38lDycARpvHPhfBylR4Jk/img.jpg)
트랜잭션 ? 랜잭션은 데이터베이스의 논리적 연산 단위다 즉 트랜잭션은 데이터베이스를 조작하는 행위가 포함되기 떄문에 하나 이상의 SQL문이 반드시 포함이 된다 예를 들어 계좌 이체를 예로 들어보면 철수의 계좌에서 10000을 출금한다 영희의 계좌에 10000원을 입금한다 철수가 영희의 계죄에 10000원을 송금한다 이러한 3가지의 경우가 있다고 생각을 해보자 이것을 SQL 문 관점에서 이를 코드화 해보면 첫번째는 철수의 계좌만을 UPDATE 해여 하고 두번째는 영희의 계좌정보 만을 UPDATE 세번쨰는 두명의 계좌를 동시에 UPDATE 해야한다 세번쨰 경우에서 만약 철수의 계좌 UPDATE만 이루어지거나 영희의 계좌가 UPDATE가 되버린다면 한쪽의 돈이 증발되거나 없던 돈이 생겨버리는 불상사가 발생할 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bdNR7Q/btqCl83ad6O/rtKbzi5awwcLJFMuQJJeZ0/img.jpg)
식별자(Identifierts)? 여러개의 집합체에 속한 여러 데이터 중 각각을 구분할 수 있는 방법에 대해 생각해보면 이 데이터 들을 구별할 수 있는 논리적인 이름이 있어야 한는데, 이렇게 데이터를 구분해주는 논리적인 이름을 식별자라고 합니다. Key? 보통 식별자와 키를 같은 동일한 개념이라고 생각하는 경우가 많습니다. 하지만 정확히 말하면 식별자는 업무적으로 구별이 되는 정보이기 떄문에 데이터 모델링 관점에서 봤을 때는 논리적 데이터 모델링 관점이라 생각할 수 있고 키와 같은 경우에는 데이터 베이스 테이블에 접근하는 물리적 매개체 이기 떄문에 데이터 모델링 관점에서 볼 때 물리적 데이터 모델링 관점이라고 볼 수 있습니다. 키에도 여러 종류가 있는데 키의 개념을 이해하고 각각의 종류의 키가 가지는 특..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/deVFxB/btqCn1CKE9p/6hiZKDZDI0RcrzKbAEcVv1/img.png)
heidisql은예전 MySQL Front로 알려졌는 제품이기도 하며 ms-sql을 지원하기는 하지만 기본적으로는 mysql 과 mariadb에 근간을 두고 있기 때문에 mysql이나 maria db를 사용할때 가장 적합한 무료 tool이라 생각한다 heidSQL은 위와 같이 세션을 보기 좋게 관리하는 것이 가능하고 네트워크 유형과 user id/pw 포트넘버들 또는 호스트 ip를 쉽게 입력하고 사용할 수 있다 위와 같이 추가 제거 버튼을 통해 쉽게 데이터 컬럼 추가가 가낭하고 null 족전과 기본값 체크 하거나 하면 위에 보이는 create 코드를 자동으로 작성해 준다 또한 인덱스 , 뷰등의 코드틑 클릭으로 자동으로 코드 작성이 가능하다 또한 저장루틴(저장 프로시저 pl/sql에 해당)과 트리거에 사용..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dtQV4w/btqCqNw0pes/cWv8s48TuG73KJlvTJWLhK/img.jpg)
데이터 모델링이란? 컴퓨터 공학을 전공하였거나 비 전공자라도 IT에 관심이 많은 사람이라면 DB가 무엇인지 대부분 알것이라 생각합니다. 데이터베이스는 결국 여러 사람이 공유할 수 있는 통합되어 관리하는 데이터베이스 집합인데 이러한 데이터의 집합을 효율적으로 구성하기 위한 작업을 의미합니다. 데이터 모델링을 3가지 문장으로 정의하자면 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법 현실 데이터에 대한 약속된 표기법에 의해 표현하는 과정 데이터베이스를 분석하기 위한 분석/설계의 과정 데이터 모델이 제공하는 기능 시스템을 원하는 모습으로 가시화 시스템 구조와 행동 명세화 시스템의 구조화된 틀을 제공한다 시스템을 결정하는 과정에서 결정한 것을 문서화 한다 특정 목표에 따라 구체화된 상세 수준의 표현방법을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/DyrTe/btqCly1PUcY/0FP0kvTQL3bOTG2umVhcUk/img.png)
DBeavber 물론 일반 커맨드 차잉나 에디터를 사용해 sql을 작성해도 되지만 개인적으로 무료 sql tool을 사용하는 것을 추천한다 위에 사진은 DBeaver라는 SQL tool 인데 이 tool의 장점은 대표적인 RDB(oracle, mysql, ms-sql mariadb)에 대한 커넥션을 대부분 제공합니다 또한 몽고DB와 같은 NOsql 또한 지원을 해줍니다 또한 위와 같이 테이블 인덱스 참조에 따라 ERD를 자동으로 생성해 주기 떄문에 테이블 관계를 쉽게 열람할 수 있습니다. DBeavber의 단축키 https://meyouus.tistory.com/52 DBeaver 단축키 모음 안녕하세요. 컴퓨터를 활용하거나 개발하실 때 해당 프로그램의 단축키를 이용하면 생산성이 좋아진다는 걸 많이 경험..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b8kLQm/btqB1HLgfzE/bQ8JkvGaUGMuLVISquRxnK/img.png)
AOP( Aspect Oriented Programing) 직역하자면 관점 지향 프로그래밍이다 프로그래밍을 하다보면 공통적인 기능이 많이 발생한다 자바나 C# 등 객체지향 프로그래밍을 해본 사람들이라면 이러한 공통기능을 적용하기 위해 상속이라는 개념을 사용하는 것을 알 것입니다. 그렇지만 자바를 공부해본 사람들은 알듯이 자바는 다중 상속이 불가능 합니다. 따라서 이러한 모듈의 기능을 상속받아 공통 기능을 부여하기에는 한계가 존재한다 따라서 Spring에서는 DI가 모듈의 결합도를 낮춰주는 역할을 한다면 AOP는 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 해주는 기능을 제공합니다 정리하자면 1. 핵심기능과 공통기능을 분리 시킨다 2. 공통 기능을 필요로 하는 핵심 기능들에서 다시 사용한다 AOP..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ouMHu/btqBZgfw53g/6N9XHV9RwKIaNHNB5A7tZ0/img.png)
Annotation 활용해서 type에 맞게 자동으로 의존성 주입 하는법 먼저 이전의 포스팅 했던 내용과 같이 Man, Woman , 클래스를 만들어 xml 파일에 빈을 추가 해 보겠습니다 package kr.dkkm.spring.di; public interface Gender { public void print_gender(); } Gender interface package kr.dkkm.spring.di; public class Man implements Gender { private String myName; public void setMyName(String myName) { this.myName = myName; } @Override public void print_gender() { // ..