프로그래밍

Db에서 로그인 테이블 구성시

Id를 pk로 하면 안 됨? 이유는?

 

스택오버플로에서도 좀 갈리네

23개의 댓글

2023.11.03

0
2023.11.03
@tolabose

안되는 이유가 보안상 취약해지기 때문인데

보통 id는 auto increment를 사용하니까 다른 id를 추측하기 쉬워지잖아

근데 뭐 id를 외부에 노출하지않고 id로 뭔가 이용할 수 있는 수단이 없다고 한다면 별 상관없어짐

0
2023.11.03
@tolabose

수정이 불가능한 경우지만, 삭제가 가능하다면? 문제가 생김? 보안상으로는 내가 파악한 한에서는 문제 없다 생각됨

0
2023.11.03
@비발디

외부에서는 id를 노출하면안됨 내부에서야 id로 북치고 장구치던 별 상관없는데

외부에 노출되면 보안이 떡락함

0
2023.11.03
@tolabose

오케. 결국 pk냐 아니냐가 중요한것이 아닌 노출여부가 더 중요하고, 아이디가 pk가 되어 노출된다면 나쁜 구조, 아니라면 무방하다 이거네?

좋은 첨언 감사. 덕분에 하나 더 배움

1
2023.11.03

pk는 의미를 가지지 않는 값으로 하는게 좋음.

시스템 정책상으로 아이디 변경을 허용하지 않는다고 해도 나중에 바뀔지 모르는 일이지

그리고 데이터의 pk를 이용자가 임의로 지정할 수 있게 만들면 해당 테이블과 조인하는 다른테이블에도 이용자 아이디가 분산되어 저장되는데, 이용자 아이디도 넓은 의미에서 개인정보이기 때문에 법률상으로 문제가 생길수 있음

그래서 pk fk같이 중요한거는 개발자가 통제할 수 있는 값으로 해야함.

 

개인정보 보호 의식이 없었을 때는 이용자 pk를 주민번호로 쓰는 곳도 있었는데 그런식으로 하면 전부 갈아엎어야 하는 일이 생김

0
2023.11.03
@짱깨고홈

이또한 맞는말이네. 결국 저걸로 fk 쓰는곳이 존나 많을텐데, 노출 위험이 커지니 리스크도 커질수있겠네

또 pk fk는 통제가능해야 한다는 말도 좋은듯

너는 뭘로 쓰는게 좋다 생각함?

0

id를 왜 auto increment로함?

0
2023.11.03
@년전개드립가입

? Pk는 다 ai가 아님

0
@비발디

아 잘못이해함 댓글에 id를 auto increment로 주로 한다고 써놧네 ㅋㅋㅋ 쏘리

0
2023.11.03
@년전개드립가입

ㅋㅋㅋㅋㅋㅋㅋ 그럴수이찌

0
2023.11.03

니들덕에 surrogate , natural key도 찾아보고있다. 식견이 넓어졌다 고맙다

0
2023.11.03

하나 더 적자면 id로 쓰면 인덱스 유지비용이 좀 비싸질걸? 작으면 상관없지만 어쨌든 비교연산은 문자열이 더 비쌈

0
2023.11.03
@6974

안 그래도 성능상 이슈 이야기도 나오긴 하더라

결국 join을 쟤로 쓰니까 점점 커질수록 부작용 나타날 확률이 있긴 하다네

몇번 테스트 해볼수있도록 고려하고있을게 ㄱㅅ

0
2023.11.07

id를 pk로 하면안됨 unique key로 해야지

mysql index에 대해서 배워두면 좋음 auto increment Integer 인덱스가 varchar인덱스보다 리소스 소비가 적음

auto increment로 설정된 id값을 하나 사용하셈

0
2023.11.07
@dsada12345

유니크하긴 하잖아

0
2023.11.07
@비발디

그래 유니크하긴 하지..

unique key는 pk의 속성중 하나고 unique key != pk지

보통 pk에 기대하는건 entity의 식별자 역할인데 식별자 역할은 만족하나

mysql 부하를 일으키는 방법이라 AI 값을 사용해야함

db index의 ai값은 재정렬을 발생시키지 않지만 id를 pk로 사용하면 매번 삽입때마다 데이터 재정렬이 들어가니까 ...

0
2023.11.07
@dsada12345

식별자역할을 만족하냐는게 어떤 뜻인지 잘 이해 안 가는데 자세히 설명 가능할까?

뒷 내용은 이해했어

0
2023.11.07
@비발디

객체지향 설계랑 도메인주도설계에서 사용하는 개념인데 자세히 설명하면 끝도 없어서 책이나 글한번 보는게 좋긴함.

Entity

Tracked through different states and across different implementations. The main characteristic of an entity is that it holds a clear identity. The identity is more important than its state, defined by other attributes. It defines an object that exists over a timeline.

1
2023.11.07
@dsada12345

ㄱㅅㄱㅅ 더 공부해볼게

0
2023.11.07
@dsada12345

혹시 추천할만한 책이나 사이트가 있을까? 너무 떠먹여달라해서 미안해

0
2023.11.07
@비발디

일단 객체지향 입문은 객체지향의 사실과 오해 로 시작하는게 좋은데

조영호 란 분이 배달의 민족에서도 발표 많이하고 KSUG 에서도 발표많이해서 이분 자료들좀 보고

도메인주도개발은 에릭에반스의 DDD가 원조인데 이 책이 좀 난해해서 우리나라 사람들이 쓴 DDD 관련 책보는게 좋은거같음

 

근데 바로 들어가면 어려울 수도 있으니 https://subicura.com/2021/06/27/study-guide.html 이쪽으로 시작해

1
2023.11.07
@dsada12345

너는 신이다

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜 조회 수
181089 [컴퓨터] 모니터 가로줄 왜생기는건가요 뭐하긴 0 2 분 전 1
181088 [잡담] 헤드셋이 죽었음 추천받습니다 3 대데맞춤법빌런 0 1 시간 전 42
181087 [모바일] 버즈 라이브 유닛 잃어버림.... 1 dlatnaks 1 1 시간 전 35
181086 [컴퓨터] 키보드 독거미로 바꿀까 하는데 4 권주가 0 3 시간 전 130
181085 [프로그래밍] 컴포즈 Box 컴포넌트가 안 나와... 집에가게해줘 0 3 시간 전 55
181084 [잡담] 질렀다. 3 째규째규 0 5 시간 전 138
181083 [잡담] 삼성 보조배터리 as받으러 감 3 쿱쿱 0 6 시간 전 191
181082 [잡담] 에어팟맥스 2 니말이다옳다 0 6 시간 전 83
181081 [잡담] 아니 9000번대 zen5 tdp 왜더내려감? 9 괴기 2 8 시간 전 213
181080 [잡담] 핏3는 고릴라 글래슨지 머시기 아닌가벼 1 레벨더높아너보다 0 8 시간 전 76
181079 [잡담] 외장하드 작살났네....ㅋㅋㅋㅋㅋ 5 닉네임변경41 0 9 시간 전 172
181078 [컴퓨터] 황회장 5천대 글카 말나온거 없지? 3 사스갓 0 9 시간 전 133
181077 [견적] 4090 완본체 이거 괜차늠? 11 돌핀 0 10 시간 전 181
181076 [컴퓨터] 아 렘 샀는데 돈 날리게생김 28 rhrry123 1 10 시간 전 175
181075 [컴퓨터] 완본체 구매질문..! 3 88light 0 10 시간 전 69
181074 [잡담] 결국 저번에 헤드폰 물어봐 놓고 안 샀다... 밀실심사 0 13 시간 전 74
181073 [컴퓨터] 5800x3d 새상품살지 중고 살지 고민 10 C플플 0 13 시간 전 213
181072 [프로그래밍] 아 ssl 적용햇는데 개정신없네 9 넌또화나있네 0 13 시간 전 176
181071 [잡담] 충전선에 접점부활제 써본 개붕이 있어?? 3 pipo9 0 14 시간 전 76
181070 [컴퓨터] 다이소 컴퓨터 먼지 청소제 재판매 안 하네;;; 4 나니니오우 0 15 시간 전 250