본문 바로가기

728x90

전체 글

(86)
JPA(1) - 도메인 설계 1. 관계 일대일, 일대다, 다대일 관계를 많이 사용한다. 그러나, 실무에서는 다대다 관계를 쓰면 안된다. => 다대다 관계면 중간 엔티티(매핑 테이블)를 만들고 일 대 다( 1:*), 다 대 일(*:1) 로 매핑하여 표현해야 한다. Why? 다대다는 실무에 한계가 있다. 예를 들어 회원이 상품을 주문하면 연결 테이블에 회원 아이디와 상품 아이디만 담고 끝나지 않는다. 보통 주문 수량 칼럼이나 주문한 날짜 같은 칼럼이 더 필요하다. 이런 칼럼을 추가하면 더는 다대다(ManyToMany)를 사용할 수 없다. 왜냐하면 주문 엔티티나 상품 엔티티에 추가한 컬럼들을 매핑할 수 없기 때문이다. 즉, 중간 테이블에 값을 넣을 수 없기에, 결국 다대다를 일대다, 다대일 관계로 풀어야 한다. 2. 연관관계 가급적 양방..
파이썬 자료형(3) - 문자열&튜플&사전&집합 1. 문자열 1) 문자열 변수를 초기화할 때는 큰따옴표나 작음 따옴표를 이용한다. 2) 문자열 안에 큰따옴표나 작은따옴표가 포함되어야 하는 경우. - 전체 문자열을 큰따옴표를 구성하는 경우, 내부적으로 작은따옴표 포함. - 전체 문자열을 작은따옴표로 구성하는 경우, 내부적으로 큰따옴표를 포함. - 백슬래시(\) 사용 시, 큰따옴표나 작은 따옴표를 포함시킬 수 있다. ex) a="Don't you know \"Python\"?" => Don't you know "Python"? 3) 연산 1) 덧셈(+) 이용하면 문자열이 더해져서 연결된다. 2) 정수와 곱할 경우, 그 값만큼 여러 번 더해진다. 3) 튜플과 유사하게 처리된다. 이 말은 인덱싱과 슬라이싱을 이용할 수 있다. ex) a = "String" p..
파이썬 자료형(2) - 리스트 1. 정의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형. 2. 특징 1) C나 자바에서 배열뿐 아니라 연결 리스트의 기능 지원한다. C++ vector 기능과 유사. 2) 리스트는 대괄호([]) 안에 원소를 넣어 초기화 해, 쉼표로 원소를 구분한다. 3) 리스트의 원소 접근 시, 인덱스 값을 괄호에 넣는다. 4) 인덱스는 0부터 시작. 5) 비어 있는 리스트를 선언하고자 할 때는 list() 혹은 []를 이용. ex) a=[1,2,3,4,5,6,7,8] print(a) => [1,2,3,4,5,6,7,8] 3. 인덱싱 리스트의 특정 원소에 접근하는 것을 인덱싱이라고 한다. 만약 인덱스가 -면은 맨 뒤에서부터 접근한다. ex) a=[1,2,3,4,5,6,7,8] a[-1]=8 4. 슬라이싱 리스..
파이썬 자료형(1) 파이썬 자료형은 정수형, 실수형, 복소수형, 문자열, 리스트, 튜플, 사전 등이 있다. 1. 정수형 양의 정수, 음의 정수, 0 이 포함. 2. 실수형 소수점 아래의 데이터를 포함하는 수.1000. 점만 찍어줘도 실수로 인식. 3. 지수 표현 파이썬에서는 e나 E를 이용한 지수 표현 방식을 이용. 예시로 1e9라 입력하게 되면, 10의 9제곱이 된다. 4. 거듭 제곱, 제곱근 2**3 =8, 2 ** 0.5=1.41.... 5. 파이썬 유의사항 1) 10진수 체계에서 0.3과 0.6 더한 값이 0.9로 떨어지지만, 2진수에는 0.9로 표현할 수 없다. 0.89999999999 로 표현되기에 round() 함수를 호출해. 몇자리 수 까지 반올림 표현. ex) round(a,2) => 2) 파이썬은 / 연산..
알고리즘 복잡도 1. 복잡도 시간 복잡도: 알고리즘을 위해 필요한 연산의 횟수 공간 복잡도: 알고리즘을 위해 필요한 메모리의 양 2. 빅오 시간 복잡도를 표현할 때 빅오(BIG-O) 표기법 사용. 빅오 표기법은 가장 빠르게 증가하는 항(큰 차수를 가진 항)만 고려하는 표기법이다. 아래는 빅오 표기법 종류에 대해 설명하는 사진이다. O(1) = 상수 연산. 연산 한 번이 수행된다. ex) a=5 b=7 print(a+b) O(n^2) = 보통 2중 반복문(for) 이용. 그러나 모든 2중 반복문 시간 복잡도가 O(n^2)이 아니다. 만약 코드가 내부적으로 다른 함수를 호출하면 내부 함수의 시간 복잡도까지 고려해야 한다. 3. 알고리즘 설계 Tip 컴퓨터 연산 횟수가 5억 넘을 경우:C언어를 기준으로 1초 이상 시간 소요...
GET과 POST의 차이점 GET은 가져오는 것이고 POST는 수행하는 것입니다. 좀 더 자세히 설명하면 GET은 Select적인 성향을 가지고 있습니다. GET은 서버에서 어떤 데이터를 가져와서 보여준다거나 하는 용도이지 서버의 값이나 상태등을 바꾸지 않습니다. 게시판의 리스트라던지 글보기 기능 같은 것이 이에 해당하죠. 단, 방문자의 로그를 남긴다거나 글읽은 횟수를 올려준다거나 하는건 예외입니다. 반면에 POST는 서버의 값이나 상태를 바꾸기 위해서 사용합니다. 글쓰기를 하면 글의 내용이 디비에 저장이 되고 수정을 하면 디비값이 수정이 되죠. 이럴 경우에 POST를 사용합니다. 좀 더 자세히 말하면, GET은 URL 주소에 값이 ?뒤에 쌍으로 이어붙어 있고, POST는 숨겨져서(BODY 안에) 보내집니다. 또한 GET은 URL..

728x90