Coding/코딩잡담 (44)


정규화

정규화

정규식과는 아무 상관 없다. 정규식은 레귤러 익스프레션(정규표현식)이고 얘는 노말라이제이션임.정규화의 필요성-이상현상정규화의 목적은 이상현상을 막기 위한 것이다. 이상현상에는 크게 삽입이상, 삭제이상, 갱신이상이 있는데 이게 뭐냐... 1. 삽입이상: 데이터베이스에 뭘 추가하고 싶은데 쓰잘데기 없는 TMI까지 같이 추가해야 한다. 예를 들어보자. 요즘 집에 집전화 있는 사람 있어요? 다들 1인 1폰이라 집전화 없잖음. 일단 우리집은 없는데… 그럼에도 불구하고 아주 오래된 회원가입 양식 중에는 집전화, 핸드폰 둘 다 써야 하는 경우가 있었다. 지금은 거의 없겠지만… 그럼 생각해봐요. 나는 여기 가입을 해서 서비스를 이용해야 하는데, 없는 집전화번호까지 입력하라고? 이렇게 얘기하면 아니 그럼 NULL때리면 ..

조인들이 모였네

조인이 뭐죠?사실 이건 정규화가 뭔지 알고 가야 하는데 이건 다음 포스트에 다룰 예정임. 아 정규화를 아신다고요? 그럼 조인이 왜 필요한지도 아실거다. 정규화라는 건 테이블을 함수 종속에 따라서 째고 째고 또 째는건데 앞에서도 얘기했듯이 이건 다음 포스트에 다룰 예정이니까 걍 테이블을 째는구나 하시면 된다. 근데 왜 갑자기 정규화 얘기가 나오냐고? 조인이 있기 때문에 정규화가 가능한 것이다. 조인은 우리집 테이블과 남의집 테이블을 묶어서 볼 수 있게 해주는, SQL에서도 가장 중요한 연산이거든.동등 조인연산자에 =가 들어가면 동등 조인이다. 이게 다냐고요? 예. 비동등 조인연산자에 = 빼고 다 들어가면 비동등 조인이다. 이건 뭐… 엑셀 룩업으로 많이 하던거 있죠? 점수표로 성적 매기는거. 그런거 할 때..

엔터티

'것'SQLD 하게 되면 제일 먼저 배우는게 엔터티, 관계 그리고 속성이다. 그 중에서도 엔터티는 설명이 그냥 '어떤 것'이다. 그니까 말 그대로 어떤 '것'이요. 엔터티의 정의를 보면업무에 필요한 정보를 저장하고 관리하기 위한 집합적인 것 이라고 하는데 진짜로 어떤 것이다. 엔터티가 뭐예요? 어떤 것이요. 그래서 어떤거요? 그냥 '것'이다.엔터티의 분류엔터티는 물리적으로 존재하는지에 따라 유형엔터티와 무형엔터티로 나누고, 무형엔터티는 또 개념엔터티와 사건엔터티로 나눈다. '것'들 중에서도 물리적인 형태가 존재하는... 피카츄 돈까스(...)나 초코칩프라페, 자바칩프라푸치노, 변기, 자같은 것들은 물리적인 형태가 존재하기때문에 유형 엔터티라고 볼 수 있다. 유니콘... 갸는 형태가 없으니 일단 유형은 아..

서브쿼리

이건 뭐냐면 쿼리 안에 쿼리가 들어있는거다. 재귀함수는 자기자신을 호출하는거라 걔랑은 거리가 좀 있고, 쿼리 안에 쿼리가 들어가는 건 약간 마트료시카 비슷하다.서브쿼리의 특징1. select나 from에도 쓸 수 있지만 보통은 where에 많이 쓰인다.2. 어째서인지 괄호로 감싸져 있다. 일단 오라클은.3. from절에 쓰이는 서브쿼리를 제외한 다른 서브쿼리들은 메인쿼리에서 칼럼을 갖다 쓸 수 있지만, 그 반대는 안된다. 그러니까 메인쿼리는 서브쿼리에 있는 칼럼들을 갖다 쓸 수 없다. 무슨 지역변수냐고... (지역변수: 함수나 코드 블록 안에서 선언되어 해당 영역 안에서만 유효하고, 해당 영역이 종료되면 메모리에서 사라지는 변수/전역변수: 프로그램 전체 범위에서 접근하고 사용할 수 있는 변수)서브쿼리의 ..

DML과 DDL

DMLData Manipulation Language SQL에서는 SELECT, UPDATE, INSERT, DELETE가 여기에 해당하며 테이블 말고 그 안에 내용물을 건드리거나(UPDATE, INSERT, UPDATE) 조회할 때(SELECT) 쓴다. 이 중에서도 SELECT는 DB의 내용물 첨삭 없이 그냥 조회만 하는거라 조회쿼리, 나머지는 DB의 내용물에 뭔가 변화가 있으니까 갱신쿼리라고 한다. SELECT데이터베이스에서 뭐 좀 찾아줘 하는 쿼리. 기본 형식은select * from (table);셀렉트에서 프롬 빼먹는건 C언어에서 리턴제로 빼먹는거랑 같다. 오류난다. (해봐서 안다) 이게 정렬이 좀 중구난방, 추가순으로 정렬되는데(일단 오라클은 그렇다) 그럴때는select * from (tabl..

정규식 테스트 사이트

아니 SQL에서도 정규식을 써... 아무튼, 어제 자기 전에 claude에게 그 얘기를 했더니 이 사이트 알려주면서 여기 많이 이용한다고 하더라고.https://regex101.com/ regex101: build, test, and debug regexRegular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET, Rust.regex101.com여기 맞다. 접속하면 이렇게 뜨는데 밑에는 저런 식으로 테스트할 문자열을 쓰고 위에 작은 칸에 정규식을 쓰면 된다. 규식정씨 테스트하고 싶은데 프로그래밍 언어가 안 깔려있다... 여기로 가십쇼.

SQL에서 쓰이는 연산자’들’

SQL에서 쓰이는 연산자’들’

SQL에는 여러가지 구문이 있는데 그 중에서도 WHERE 구문에서 어떤 조건을 추릴 때 가장 많이 조합하는 게 연산자(들)이다. 사실 내가 헷갈려서 정리하는거 맞음. 앞으로도 SQL 관련으로 지속적으로 정리할거 생기면 카테고리가 늘어날수도 있습니다. 미디움에는 해당 안 되는 얘기겠지만. 그리고 올리자마자 스킨 형식 개발살나준 티스토리 고맙다 아주. 덕분에 아직도 못나감. ㅠ 연산자의 종류산술연산자+ - * / 각각 더하기, 빼기, 곱하기, 나누기. 보통 숫자형 더할 때 쓰는데 날짜 더할때도 쓴다. 비교연산자= > >= 순서대로 같음, 같지 않음(!=랑 같은거) 크다 크거나 같다 작다 작거나 같다뒤에 네 개는 초과, 이상, 미만, 이하로 외우면 편하다. 논리연산자AND, OR, NOT 엑셀에서도 많이 ..

걍 간단한걸로 만들걸… ㅡㅡ

SQLD는 SQL 만지는 것도 배워야 해서 연습용으로 표를 만들었고 저 표에는 포켓몬 전국도감 번호와 폼별 코드(메진이냐 폼체냐 이런거), 이름, 타입(두개), 키, 몸무게랑 분류가 들어가있음. 이걸 일일이 수기로 추가하려니 너무 힘듦… Python의 도움은 받고 있는데요.. 그래도 직접 타이핑해서 입력하다보니 반도 못 쳤음… 터미널단에서는 애초에 INSERT INTO로 줄단위로 넣고 있는데 쟤가 한글 입력하다가 뻑다면 구문까지 같이 이상해져서 그럴수밖에 없음.. 그나마 Python으로는 여러줄 넣는 방법도 있어서 망정이지… 표 포맷도 오늘 잡은거긴 한데 저거 닫으면 날아갑니다. 터미널에서 할때마다 IDE가 그립다... 한글 뻑나는건 둘째치고 자동완성 불가에 이전에 썼던 거 간단하게 불러오는것조차 안됨...

너란 SQL...

일단... 1. 오라클을 우분투에서 설치하려면 docker에서 돌려야되는데... 예. 이거 터미널입니다. 리눅스에서 GUI는 기대하시면 안됨. 당신이 익숙해지십시오. 2. 일단 설치 난이도는 GPT한테 물어보고 했는데도 그렇게 어렵진 않았음. 근데 여기서는 탭키를 이용한 자동완성따위 안되니까 일일이 타이핑하셔야 합니다. 3. 오라클은 테이블명이 대문자로 저장된다. 그래서 select 어쩌고 저쩌고 할거면 표 이름을 대문자로 써야 한다. 4. 너무 오랜만에 쓰다보니 구문 까먹었음… 5. 가끔 세미콜론 안 찍어서 뻑날때가 있다. C언어에서 리턴제로 빼먹으면 에러 나는것마냥.

정형 데이터 vs 비정형 데이터

이건 사실 데이터 사이언스쪽 용어긴 함. 근데 이 카테고리에 컴퓨터 사이언스 얘기도 쓰니까 걍 넘어가자. 그래서 이걸 왜 갑자기 쓰고 앉았냐... 기출문제 풀다가 틀렸음. 이메일이 비정형 데이터래... 이메일이 비정형 데이터라고요?일단 내가 하도 얼척없어서 이메일이 비정형 데이터인 이유를 GPT와 클로드에게 물어봤다. 그랬더니 1. 사람 입장에서는 이메일을 쓸 때(특히 비즈니스 메일, 혹은 교수님께 문의 메일같은 거 보낼 때) 정해진 형식이나 양식, 써야 할 말과 쓰면 안될 말이 있고, 언어야 천차만별이겠다만 그게 어쨌든 문자니까 정형 아니야? 라고 생각할 수 있다. 나도 그랬거든... 근데 컴퓨터 입장에서는 본문 길이도 일정하지 않고, 패턴도 뭐가 뭔지 모르겠는 그냥 무언가다. 2. 생각해보자. 우리..

코딩할때 많이 활용하는 사이트 모음

원래는 VScode 단축키 다룰까 하다가 너무 많아서 걍 이걸로 틀었음... VScode 단축키 중 외우고 있는 건 Ctrl+K+T(테마 변경)말고 없습니다. Two color combinationhttps://2colors.colorion.co/ Two Color CombinationsTwo color combination palettes2colors.colorion.co두 가지 색을 전경색/배경색으로 조합했을 때 어떤 느낌인지를 보여주는 사이트인데, 단점이 하나 있다. 저기서 맘에 드는 조합이 있으면 복사는 할 수 있는데 내가 원하는 색 조합을 '만들 수는' 없다. 일단 저거 비슷하게 두 가지 색을 입력하면 전경색/배경색 조합일때 어떻게 보이는지는 나중에 JS로 만들어볼거임. AI color pale..

우분투 부팅디스크를 만들어보자

우분투 부팅디스크를 만들어보자

https://koreanraichu.tistory.com/392 셋업할거 정리중... https://koreanraichu.tistory.com/390 어영부영 3월입니다. 일단 아직 상순이지만 눈감으면 중순이오 눈감으면 하순이오 눈감으면 아 생일이네... 만나이 증가! 뭐... 진짜 그래요. 세월이 다 그렇지 뭘... koreanraichu.tistory.com 여기에 대충 새 노트북에 세팅할거랑 이것저것 해서 정리해뒀다고 했는데, 윈도건 리눅스건 일단 FreeDOS에 설치할거면 CD(혹은 USB에 부팅디스크 만든거)가 있어야 한다. 보통 윈도우는 FreeDOS 사면서 윈도우 같이 사고 깔아달라 하면 파시는 분들이 알아서 찰떡같이 깔아주시지만(물론 윈도우 몸값도 지불했으니까...) 리눅스는 그렇지 않..