데이터베이스(ORM-Django Model)
·
Python/Django
데이터베이스의 종류관계형 데이터베이스(MySql)NoSQL(MongoDB) 데이터베이스에 쿼리하기 위한 언어 → SQL같은 작업을 하더라도, 적은 수의 SQL, 보다 높은 성능의 SQL을 사용해야 함직접 쿼리를 작성하기도 하지만, ORM을 통해 SQL을 생성, 실행함ORM을 쓰더라도, 내가 작성한 ORM코드로 어떤 SQL이 실행되고 있는지 파악을 하고, 이를 최적화 할 수 있어야 함(django-debug-toolbar)활용 장고 기본 ORM Model은 RDB(관계형 데이터베이스)만을 지원함 NoSql을 쓰려면 다른 ORM을 사용해야함Python의 ORM은 여러가지가 존재함 Models, django-mongodb-engine, hot-redis등등 필요한것을 골라먹으면 됨 장고의 강점은 Model과 ..
Django 공부 시작
·
Python/Django
Django를 공부하기로 했다. Python으로 코딩 테스트 공부를 하고 있다보니, Python의 문법이 마음에 들어 Django를 공부해 보기로 했다.Python의 문법에도 익숙해 질 수 있고, 스프링과 비슷한 구조에다가, Admin 페이지 제공이 되는 옵션이 있고, 스프링에서 JPA로 배워야 했던 ORM이 기본적으로 적용되어있어 좀 더 데이터베이스 친화적인 프레임워크이다. 공부할 강의를 찾는데 꽤나 애먹었는데, Django를 공부하는 사람이 거의 없어서 그런가 보다. 하지만 그래도 그만큼 마음에 든 언어이고, Python에서는 매력적인 서드파티 라이브러리가 많은데, 그런 라이브러리도 가져와서 쓸 수 있다는 장점이 있기 때문에 공부하고 싶다고 생각했다. 앞으로는 코딩테스트 강의를 장고 강의를 듣고 나서..
오라클 클라우드에 페이지 배포하기 (1)
·
JPA 게시판/JPA게시판 만들기
바로 볼 수 있는 페이지 배포하기포트폴리오에서 볼 수 있는 페이지가 없어서 접근성이 떨어짐데이터베이스를 따로 배포해야하는 귀찮음실제로 프로젝트가 잘 작동하는지 볼 수 있도록 해야한다 nginx 와 Oracle Cloud를 이용하여 배포한다.nginx를 설치한다 (명령어를 통해)Oracle Cloud에서 방화벽 설정을 진행하여, nginx의 디폴트화면이 뜰 수 있게 한다.nginx의 리버스프록시 설정 등을 통해 리액트 프론트 페이지를 볼 수 있게 한다. 몇가지 진행하면서 발생한 오류접속이 거부됨 — 방화벽 설정 및 오라클 클라우드 설정Failed to start iptables.service: Unit iptables.service not found. 위 오류는 iptables 서비스가 존재하지 않는다는 ..
배열 Array
·
코딩테스트 준비/자료구조
array고정된 데이터 크기연속된 데이터선언된 배열에는 데이터가 저장된 메모리의 맨 첫번째 주소를 가지고 있게 된다.배열의 타입에 따라서, 다음 데이터의 시작 위치를 알 수 있다.int arr[5] = {1,3,4,6,8}일때 arr[1] 을 꺼낸다고 하면, int 자료형은 4byte이므로, arr에 저장된 주소에서 4byte만큼의 크기만큼 더해서 그곳에서 4byte 만큼의 자료를 꺼내오게 된다. 그 값이 바로 3이된다. RandomAccess 메모리에 저장된 데이터에 접근하기 위해서는 주소값을 알아야 한다. 배열 변수는 자신이 할당받은 메모리의 첫 번째 주소깂을 가진다. 배열은 연속적/순자척으로 저장되어있기 때문에, 첫 주소값만 알고 있다면 어떤 인덱스에서 즉시 접근이 가능하다. 이를 Direct Ac..
동적 배열 Dynamic Array
·
코딩테스트 준비/자료구조
동적 배열도 결국 Array다 리사이징넣어야 되는 데이터가 Array가 처음 할당 받은 메모리 크기보다 클 때, 리사이징이 동작한다.새로운 메모리 주소를 할당받게 되는데, 그 크기는 기존 배열의 두 배가 기준이 된다. 왜냐하면, 리사이징은 기존에 있던 데이터를 새로운 메모리 주소에 옮기고 이전 데이터를 지워야 하는데, 이때만 O(n)의 시간복잡도를 가지게 된다. 이 리사이징 작업이 데이터를 추가할 때마다 동작하게 되면, 추가할 때마다 O(n)의 작업을 다시 해야 한다. 그래서 한 번 늘릴때 통크게 늘리는 것이다. 파이썬이 사용하게 되는 것이 dynamic array다문제에서 list를 사용하게 될 때를 잘 구분해야함 선언 및 초기화선언시에는 n개의 데이터를 넣어야하기 때문에 O(n)접근O(1)추가데이터 ..
배열의 코테 적용방법
·
코딩테스트 준비/자료구조
반복문완전탐색 - O(n)2 제약조건에 간당간당함def twoSum(nums, target): n = len(nums) #n은 주어진 배열의 길이 for i in range(n): # 0~n 까지 i ++ for j in range(i+1,n): # i+1 ~ n까지 j++ # i와 j에 해당하는 값들을 더해 target의 값이 나오면 True if nums[i] + nums[j]== target: return True return False # 아니라면 False가 된다. print(twoSum(nums=[1,2,3,4,5],target=10))Sort& Two Pointer 투 포인터의 기본적인 생각은 이렇다.배열의 양 끝단에 포인터를 하나씩 설정한다.만약 정렬된 두 수의 합이 크면 포인터를 왼쪽으로..
코딩테스트 공부 다시 시작
·
코딩테스트 준비
코딩 테스트 공부를 다시 시작하기로 했다이유는어떤 기업의 사전과제를 봤는데, 처음부터 막힌것에 충격을 받았기 때문이다.과거 배민에서 진행한 온보딩에서 문제풀이를 할 때, 마구잡이로 풀었던 기억이 있다. 어떤 문제를 맞딱뜨렸을 때, 그 문제를 코드부터 치는게 아니라, 천천히 설계부터 고민하는 습관을 들이고 싶었기 때문이다.지금까지의 코드들에 알고리즘이 단순하다. 나중에 복잡한 비즈니스로직을 짜야 할 때가 올 때가 있을텐데 그 문제를 혼자 해결하지 못하고 다른 사람에게 도움을 청하게 되면, 그 사람에게 너무 미안해질것 같다. 만약 도움을 청하게 된다고 하더라도, 잘 알아듣고 코드를 작성할 수 있게끔 하는 훈련이 필요하다고 생각되었다.내 실력을 조금이지만 증명할 수단이 필요하다. 지금 취업 시장이 얼어붙어서 ..
NOTION to Tistory를 사용하고 있다.
·
카테고리 없음
노션 TO Tistory라는 파이썬 프로그램을 통해 노션의 글을 티스토리로 옮기는 작업을 진행중이다. 처음 노션 페이지를 복제해야 되는것을 몰라서 조금 애먹었지만 이제 편해졌다. 티스토리를 잘 몰라서 헤멨던 점이 하나 있는데, 하루에 글이 15개까지밖에 작성이 안된다는 점이다. 그걸 모르고 자꾸 에러가 떠서 에러코드를 확인해보니 406에러였고, 검색하다보니 티스토리의 글 작성이 하루 15개로 제한되어있다는 것을 깨달았다. 다른 사람들도 똑같은 일을 겪었을까?