본문 바로가기
반응형

전체 글1071

JPA 복합키 사용법 저번 포스팅에서 데이터베이스 키의 종류에 대해서 알아봤고, 예전 포스팅에서 JPA에 대해서 다뤄보았다. JPA는 ORM 기술을 사용하여 mybatis처럼 쿼리를 짜는것이 아니라 코딩으로 구현을 하는 기술인데 저번 예시에서는 단 한개의 PK를 가지는 경우에서만 예시를 들었는데, 이번엔 여러 복합키에 대해서 구현을 할때 하는 방법에 대해서 포스팅 할것이다. 먼저 복합키와 JPA의 예시가 궁금하면 아래 참고 포스팅을 확인해보도록 한다. 두가지의 방법이 있는데 개인적으로는 IdClass구현하여 사용하는것이 쉬워서 해당 방법을 다뤄볼것이다. 먼저 일반적으로 만들어둔 엔티티에서 annotation을 하나 더 추가해준다. @IdClass(key.class) 그리고 복합키로 묶일 컬럼들에 @Id라는 annotation.. 2022. 4. 2.
Key의 종류(간결 설명) 데이터베이스를 사용하게 되면 Key라는 개념을 들어봤을것이다. 대표적으로는 Primary Key, Foreign Key 를 많이 들어봤을텐데. 오늘은 좀더 심화적으로 다뤄볼 예정이다. 먼저 후보키에 대한 설명이다. 후보키 테이블을 구성하는 속성들 중 튜플을 유일하게 식별할수 있는 집합이다. 그말은 즉슨 이 컬럼이 다른컬럼들과 비교를 해도 중복이 없는 컬럼이어야한다. 이들중에 하나를 기본키라고 한다. 기본키 다른말로 Primary Key , PK라고 하며 테이블의 기본 기준, 이 되는 컬럼이다. null이 될수 없으며 중복이 될수 없다. 이 기본키는 한가지일수도 있고 여러가지가 복합해서 하나의 기본키가 될수도 있다. 그럴경우 그것을 복합키라고 한다 복합키 예를들어 동물원은 많지만 서울광진구에있는 동물원은 .. 2022. 4. 1.
JAVA TLS 접속 에러(The server selected protocol version TLS10,TLS11 is not accepted by client preferences) spring build를 하는데 데이터베이스에 접속 관련해서 제목과 같은 에러가 나왔다. 찾아보니 TLS 1.0 TLS1.1 로 접속을 못한다는 의미인것 같다. 자바에서 dbms로 접속하기 위함인것이라고 생각하고 JAVA_HOME경로에서 셋팅 파일을 찾아봤다. 자바 홈을 각자 위치에서 설치를 했겠지만 맥에서 자바를 새롭게 설치하거나 참고사이트처럼 설치를했다면 /Library/Java/JavaVirtualMachines/jdk-11.0.13.jdk 위치에 있을것이다. 해당 디렉토리에서 Contents/Home/conf/security를 들어가보면 java.security 라는 파일이 있을것이다. 자바 홈 안에 Contents 폴더가 없다면 find 명령어를 통해서 자바홈 안에 java.security 파일.. 2022. 3. 31.
랜섬웨어에 대해서. 인터넷이나 뉴스 등 기사에서 랜섬웨어에 대한 기사를 본적이 있는가. 많은 이들이 단어는 들어봤을텐데 정확한 의미는 모르고 사용하고 있는것 같아서 포스팅 주제로 다루게 되었다. 랜섬웨어는 몸값을 뜻하는 Ransom과 악성코드의 의미인 Malware의 합성어 이며 말 그대로 악성코드를 심어서 몸값을 요구하는것이다. 그말은 즉 어린 아이를 유괴, 납치 하여 몸값의 돈을 받게 되는것인데 해커가 해당 컴퓨터에 잠입하여 각종 파일들이나 시스템에 잠금을 걸어버리고 파일을 하나 남긴다. 거기엔 협박의 편지가 들어가 있다. 개인컴퓨터에는 잘 잠입이 없긴하고 회사 단위로 중요한 문서들을 암호화 하여 협박을 하며 돈을 요구하는 해킹의 수법중 하나이다. 그럼 어떻게 컴퓨터에 잠입을 하느냐, 영화나 드라마에서 보았을수도 있지만.. 2022. 3. 30.
DNS란? DNS는 DomainNameSystem 의 약자이다. 이것이 무슨뜻인지를 이번 포스팅에서 다뤄볼 것이다. 일단 시작하기 앞서 IT를 아시는 분이라면 다양한 의미의 도메인이라는게 있다는것을 알것이다. 예를들어 소프트웨어 공학에서는 요구사항, 전문용어, 컴퓨터프로그래밍 분야에서 문제를 풀기위해 설계된 어떤 소프트웨어 프로그램에 대한 기능성을 정의하는 연구의 한 영역이라는 의미를 갖기도 하고, 데이터베이스에서는 릴레이션에 포함된 각 속성들이 가질수 있는 값들의 집합을 의미하며 통신쪽에서는 www.tistory.com 에서 tistory.com 이라는것도 도메인이라고 한다. 그밖에도 언어 뜻으로는 많은 의미가 있지만 오늘 다뤄볼 도메인은 통신쪽에서 말하는 도메인에 대해서 설명해볼것이다. 우선 DNS가 필요한 이.. 2022. 3. 29.
google에 검색하는 능력 / 구글링 능력 많은 사람들이 일을 할때 모르는 분야가 생긴다면 인터넷에 검색을 할것이고, 특히나 개발자라면 정확하게 어떤 부분을 모르겠어서 정확하게 구글에 모르는 것을 검색하고 빠르게 습득한다음 자신의 코드에 적용을 잘 시킬줄 알아야 좋고 훌륭한 개발자라고 생각한다. 그러기 위해서는 필요한 것을 구글에 검색을 하는데 구글에서도 자연어처리라고 하여 검색시 자체적으로 알고리즘을 통해서 필요한 정보들을 리스트로 뿌려준다. 예를 들어서 하나의 데이터베이스 쿼리에 대한 질문으로 예시를 들어보도록 할 것이다. 정확한 키워드 첫번째로 중요한것은 정확한 키워드를 검색해야한다. 만약 mysql에서 select 문에 대해서 검색을 하고자 한다면 검색창에 mysql select 라고 간단 명료, 핵심, 키워드만 검색을 하는것이 도움이 된.. 2022. 3. 28.
IP주소에 대해서 IP란 Internet Protocol의 약자로 인터넷 상에서 사용하는 인터넷 주소를 말하는 것이다. 컴퓨터의 주소가 아닌 네트워크의 주소라고 생각을 하면 쉽다. 그럼 그말은 네트워크가 연결된 모든것은 전부 ip주소가 존재한다는 말인데 그렇다. 지금 사용하고 있는 컴퓨터, 노트북 뿐 아니라 서버, 핸드폰, 아이패드, 그리고 만약 lte스마트 워치를 사용한다면 그것 역시도 하나의 주소가 된다. 홈네트워크라고 하면 가정에 있는 모든 장비들이 공유기를 통해서 하나의 네트워크로 묶여있는것인데, 내부적으로는 각각 하나의 아이피를 갖지만 결국 밖에서 봤을땐 그 집으로 들어가는 하나의 IP인것이다. 그집으로 들어가는 하나의 IP 역시 아파트기준으로는 아파트로 보면 각각 하나씩이지만 외부로 봤을땐 크게 하나의 IP인것.. 2022. 3. 27.
인코딩이란?(ascii, unicode, utf-8) 개발자들은 개발을 하다보면 한글 출력부분에 있어서, 혹은 엑셀파일을 메모장에서 열거나 반대로 메모장을 엑셀에서 열거나 하면 한글이 깨지는 경험을 해본적이 있을것이다. 우선컴퓨터는 0과 1을 가지고 binary값으로 데이터와 정보를 읽고 쓴다. 숫자는 가능하지만 문자는 숫자로 나타나기엔 한계가 있기에 문자에도 특정 번호를 매긴다. 예를들어 A=65, B=66... 그리고 소문자역시 a=97부터 사용을 하고 이것을 ascii 코드라고 한다. 이 숫자는 십진법에서 이진법으로 변환을 하여 예를 들어 A, 65 = 1000001 로 표시가 될수 있다. 자세한것은 아래 표를 참고하자. 사람이 문자를 입력하면 컴퓨터는 2진법으로 저장하고 보여줄때 다시 문자로 변환해서 알려주게 된다. 여기서 문자를 입력한것을 2진법.. 2022. 3. 26.
재귀 함수란? (recursive function) 재귀 함수는 말그대로 자기 함수를 호출하는것을 의미한다. 이해하기 쉽도록 코드로 설명을 해보면 function recursive(variable) { ... ... if(조건 충족){ return result; } else{ return recursive(value); } } 이런식으로 while 문처럼 무한 반복이 아닌 종료 조건이 있는 전제 하에 자기 자신을 호출하는 함수이다. 대표적으로 재귀함수로는 하노이 탑이 있다. 하노이 탑은 타워 1에서 타워 3으로 그대로 탑을 옮기면 되는데 단 조건이다. 작은판 위에 큰판을 올릴수가 없는것이고 한번에 하나씩만 옮길수가 있다. 직접적으로 만들어서 해봐도 좋고 머리로 생각을 해봐도 좋은데 결국엔 하는 행동이 반복적이게 된다. 결론은 가장 아래있는 판은 목적지로 .. 2022. 3. 25.
반응형