STUDY 114

RDB & NoSQL

1. RDB는 transaction을 통한 데이터의 안정성을 보장한다는 장점이 있습니다. 반면에 no-sql은 지원하지 않습니다. 2. RDB는 관계를 통해 데이터를 정의하여 직관적으로 데이터베이스를 설계할 수 있고 no-sql은 데이터가 나열되어 있어 설계하기가 까다롭다. 3. RDB보다 no-sql은 JSON형태로 저장돼 속도가 더 빠르고 많은 데이터를 저장할 수 있다. 4. no-sql은 인메모리 데이터베이스 redis, 검색엔진으로서의 elastic-search 등 활용도가 높으나 RDB는 데이터베이스로만 쓰입니다. 5. RDB는 관계형 데이터베이스로 스키마가 명확히 있어 데이터 중복이 없지만, NOSQL은 자유로운 형태의 데이터베이스로 정확한 데이터 구조를 알 수 없고 데이터 중복이 발생할 수 ..

STUDY/DataBase 2022.09.15

TODO 0901

- 이력서 수정 - 포트폴리오 수정 - 자기소개서 수정 - 벼락치기 - 회의 - 서비스 레이어 공부 - 기업 과제 1 배포 - 50문답 진짜 뜬금없는데 어쩌다 비트연산이란 걸 듣게 됨. 캠퍼 중에 진짜 코드가 깔끔한 분이 있는데 그 분 80줄짜리가 1줄이 됐다며 충격을 먹더니 비트연산에 대해 얘기하는데 너무 신기해서 적어봄 2 * (2**2) =>8 2 8 결론 : A 0 3 ^ 1 =>2 3 ^ 3 ^ 3 =>3 1 ^ 3 ^1 =>3 .. ^ 연산자는 ..뭐지..?

STUDY/Python 2022.09.01

트랜잭션 transaction & ACID

트랜잭션 사람이 주관적으로 하나의 작업으로 지정한 sql의 묶음이자 작업 수행의 논리적 단위. 혹은 sql을 이용해 데이터베이스에 접근하고 상태를 변화시키기 위해서 수행하는 작업의 단위. 혹은 쪼갤 수 없는 업무 처리의 최소 단위라고도 합니다. 단위가 헷갈려서 적어보게 되었습니다. 예로 들면, A은행 → B은행으로 돈을 보내기 위해 출금하고 송금한다고 가정하면, A은행에서 돈이 출금하고 나서 B은행으로 송금하려고 하는데 갑자기 시스템이 멈추면!! 돈은 출금되었지만 송금되지 않고 증발하게 되는 대참사가 발생합니다. 트랜잭션은 이러한 상황이 일어나지 않도록 보장해주는 가장 기본적인 방법으로 출금 작업과 송금 작업을 사람이 주관적으로 하나의 작업으로 지정한 최소의 단위를 트랜잭션이라고 합니다. 데이터의 유효성..

STUDY/Python 2022.08.25

CS간단정리 50문답(41~52)

41. Django는 어떤 종류의 데이터베이스를 사용합니까? Flask와의 차이는 무엇입니까? 42. Django에서 제공하는 sqlite는 어떤 장단점이 있습니까? 43. AWS를 통해 배포할 경우, sqlite를 사용하지 않는 이유는 무엇입니까? 44. Django settings에서 DB 스택을 변경하는 방법은 무엇입니까? 45. Django 프로젝트를 배포할 때, 노출되어서는 안되는 값은 어떤 것이 있습니까? 46. Django 프로젝트를 배포할 때, 시크릿키를 노출하지 않는 방법에 대해서 설명하시오 47. Django 프로젝트 진행 시 발생하는 CORS 오류를 처리하는 방법에 대해서 설명하시오 48. Django 프로젝트를 배포할 때 Allow Host에 * 가 들어가면 안되는 이유는? 49. ..

STUDY/Python 2022.07.27

CS간단정리 50문답(31-40)

31. DRF Serializer는 무엇이며, 어떤 기능을 수행합니까? 32. JSON 형식으로 데이터를 받고, Serializer를 통해서 JSON형식으로 데이터를 반환하는 이유는 무엇인가요? 33. Serializer를 통해서 특정 모델에 존재하지 않지만, 관계 있는 테이블의 필드 레코드를 반환하는 방법에 대해서 설명하시오 34. Serializer를 통해서 역참조 하는 방법에 대해서 설명하시오 35. DRF Q기능을 통해서 쿼리하는 것은 어떤 장점이 있습니까? 36. Serializer에서 어떻게 객체를 validate하게 됩니까? 37. Serializer에서 Custom Validation을 하는 이유는 무엇입니까? 38. Serializer에서 create, update 함수는 어떤 기능을 수..

STUDY/Python 2022.07.26

Array vs Linked List

Array 크기가 정해진 데이터의 공간으로 한 번 정해지면 후에 바꿀 수 없음 원소의 순서는 0부터 시작하고 이를 index 라고 부름 원소에 즉시 접근할 수 있다 . array[0] 상수 시간 O(1) 내에 접근 할 수 있음을 뜻한다. 원소를 중간에 삽입/삭제를 하려면 모든 원소를 다 옮겨야 함. 최악의 경우 끝에서 끝으로 삽입/삭제시 배열의 길이 N 만큼 옮기기에 O(N)의 시간복잡도를 가짐 원소를 새로 추가하려면 새로운 메모리 공간을 할당해야 하기에 비효율적인 자료구조 데이터에 접근하는 경우가 빈번하다면 Array ! 밑의 경우 array[9](="8")에서 array[4](="3")이동은 O(5)의 시간복잡도를 가짐 Linked List 리스트와 혼용되는 단어 크기가 정해지지 않은 데이터의 공간으..

STUDY/Python 2022.07.20

CS간단정리 50문답(21-30)

21. 테스트코드에서 setup 함수와 setupclass의 차이는 무엇입니까? setup : 각 테스트 메소드를 호출하기 이전에 호출되는 메소드입니다. 테스트 케이스가 실행될 때 마다 사용됩니다 setupclass : 해당 테스트 클래스가 시작되기 이전 단 한번 호출되는 메소드입니다. setUp메소드는 각 테스트 메소드 이전에 항상 호출 됩니다. 메소드에 @classmethod라는 데코레이터를 달아줘야하고 메소드 인자로 cls를 넘겨줘야합니다. import unittest class TestFixture(unittest.TestCase): @classmethod def setUpClass(cls): print('setUpClass') def setUp(self): print('setUp') 22. Te..

STUDY/Python 2022.07.19

CS간단정리 50문답(17-20)

17. 데이터 테이블 간의 관계를 나타내는 FK, OneToOne, ManyToMany 필드에 대해서 설명하시오 ForeignKey : 일대다관계, 한 지역에는 여러 사람이 거주함. OneToOneField : 일대일관계, 예시로 한 국가에는 하나의 수도만 존재함. ManyToManyField : 다대다관계, 피자와 토핑을 생각하면 된다. 18. Django에서 ManyToMany필드를 만드는 방법에 대해서 설명하시오 1. 중간 테이블을 만드는 방법으로 A와 B 테이블을 만들고 그 둘의 중간테이블인 C를 만든다. C -> A , C -> B 의 관계를 일대 다로 설정해주어 테이블 관계를 세팅할 수 있다. 2. ManyToManyField의 through 옵션을 만들어주어 장고에서 자동으로 만들 수 있다...

STUDY/Python 2022.07.19

CS간단정리 50문답(13-16) : JWT

13. 회원가입을 할 때 비밀번호를 암호화하여 저장하는 이유는 무엇입니까? 정보통신, 정보보호 등에 관한 법률 등에서는 인터넷을 통해 유통되는 정보의 보호를 위해 암호기술을 구현하도록 규정하였기 때문에 해쉬함수를 이용해 암호화하여 저장합니다. 보안은 절대 완벽할 수 없다고 생각하여 취약점으로 인해 정보가 탈취가 되었더라도 최대한 데이터의 정확한 정보를 확인하기 힘들게 위함이라 생각합니다. 14. JWT에 대해서 설명하시오 JSON Web Token의 약자로 속성 정보를 JSON 데이터 구조로 표현한 토큰입니다. 세 파트로 나누어지며 각 점으로 구분하여 표현합니다. URL에서 파라미터로 사용할 수 있도록 URL-safe한 Base64url 인코딩을 사용합니다. header에는 토큰의 타입과 해시 암호화 알..

STUDY/Python 2022.07.18

CS간단정리 50문답(1-12) : Django

1. Django ? 웹사이트를 만들기에 최적화된 파이썬 프레임워크로, 로그인 시스템, 데이터베이스 연결 및 CRUD 작업같은 내장된 기능들이 제공되어 즉시 사용이 가능함. 이미 만들어져 있는 기능들을 이용해 만들어 시간 단축을 할 수 있고 빠르게 개발이 가능한 장점이 있는 밀키트 같은 프레임워크 ! 2. Django를 스택으로 선정한 이유? 디테일한 docs와 커뮤니티가 형성되어 비기너가 접근하기 쉽고 배우기가 좋습니다. 내장 함수가 굉장히 많기 때문에 이를 통해 전반적인 흐름 파악이 빠릅니다. 장고를 공부하여 다른 프레임워크를 사용했을 경우도 빠르게 적응할 수 있을 거라 생각이 듭니다. 3. Django 의 장점 여러 url, 함수-메서드, 템플릿들을 파일에 모아 한번에 관리하는 점. 각각 구분을 하..

STUDY/Python 2022.07.15
반응형