본문 바로가기

전체 글137

2022.1.1 TIL : [Java] 컬렉션과 제네릭 (Collection & Generic) - 마무리 컬렉션과 제네릭 개념에 대한 블로그를 작성하고 난 후에, 책의 마무리 과제에 있는 문제를 수행해 보았다. 아무래도 자바에 익숙하지 않고, 파이썬에서는 단순하게 클래스를 쓰면 될 것을 자바에선 컬렉션과 제네릭..으로 구성하다보니 조금 헷갈리긴 했다. 그럼에도 전에 누군가 자바로 알고리즘 풀면 재밌다고 한 적 있는데, 그럴 것 같기도 하다. 해당 언어가 익숙해지려면 알고리즘 푸는 것만큼 효과적인 것도 없으니까 자바로 알고리즘 푸는 연습도 해봐야겠다. 문제는 영어 단어 뜻 맞추기 게임을 만드는 것으로, 다음과 같이 수행되면 된다. 조건 : Word 클래스 작성하고, Word를 Vector 컬렉션에 삽입해 둔다. 벡터 내에서 정답이 아닌 단어를 3개 선택하여 총 4개의 보기를 보여준다. 단어 테스트를 시작합니다.. 2022. 1. 1.
2021.12.31 TIL : [Java] 컬렉션과 제네릭 (Collection & Generic) - 2 지난 번에 쓴 글에서 컬렉션과 제네릭의 기초에 대해 정리했다. 이번에는 HashMap과 LinkedList, 그리고 Collections 클래스 활용에 대해서 그리고 사용자가 직접 만드는 제네릭에 대해 알아보았다. HashMap 컬렉션 HashMap컬렉션의 경로명은 java.util.HashMap이며 키와 값의 쌍으로 이루어졌다. K는 '키'로 사용할 데이터 타입을, V는 값으로 사용할 데이터 타입을 넣어주면 된다. 새로운 키-값 쌍을 넣어줄 때에는 put, 키에 대한 값을 불러올 때는 get을 이용해주면 된다. HashMap h = new HashMap(); h.put("apple","사과"); String kor = h.get("apple"); System.out.println(kor); 해시맵은 해.. 2022. 1. 1.
2021.12.30 TIL : [Java] 컬렉션과 제네릭 (Collection & Generic) - 1 컬렉션은 자바 프로그램을 작성하는데 빼놓을 수 없는 중요한 도구이다. JDK에서는 자료구조 과목에서 배웠던 다양한 자료 구조들을 컬렉션으로 만들어서 제공하기 때문에 이를 잘 이해해두면 좋다. 컬렉션은 제네릭이라는 기법으로 구현되어 있기 때문에 컬렉션을 공부하기 위해서는 제네릭에 대한 공부도 필요하다. 배열은 여러 개의 데이터를 다루는 데 편리한 자료 구조이지만, 삽입 삭제가 빈번하고 데이터의 크기를 예측할 수 없는 응용 프로그램에서 사용하기에는 불편하다. 컬렉션은 배열이 가진 고정 크기의 단점을 극복하기 위해 객체들을 쉽게 삽입, 삭제, 검색할 수 있는 가변 크기의 컨테이너이다. 컬렉션 클래스 종류 vector와 ArrayList : 가변 크기의 배열을 구현 Stack : 스택 구현 LinkedList .. 2021. 12. 30.
2021.12.3 TIL : [Django] nginx와 gunicorn Django로 제작한 웹 서버를 배포하게 되었는데, 전에 했던 야매.. 방식이 아니라 좀 더 공부할 기회가 생겼다. 컴퓨터 네트워크를 수강하면서 이론적으로 배웠던 개념들을 직접 해보게 되는 것 같아서 신기하기도 하고, 아직은 제대로 이해한 게 못 한 거 같아 앞으로 더 자세히 알아봐야 할 것 같다. 먼저 네트워크의 주체가 다음과 같이 있다. 클라이언트 웹 서버 웹 어플리케이션 서버 클라이언트는 흔히 알고 있듯이 서버에 요청을 보내고 응답을 받는 주체이다. 이 때 웹 브라우저 (IE, 크롬, 사파리 등)을 이용해서 좀 더 쉽게 요청을 보내고 응답을 우리가 흔히 아는 웹 페이지처럼 구성해서 볼 수 있다. 웹 서버(WS)는 클라이언트로부터 HTTP request를 받아들이고, HTML과 같은 웹 페이지를 정적.. 2021. 12. 4.
2021.11.26 TIL : [Django] ORM lazy loading DRF를 이용한 페이지네이션을 공부하면서 갑자기 혼자 고민하기 시작했다. 다음은 페이지네이션 블로그 코드 중 일부를 중략한 코드인데, objects.all()을 이용해서 전체 데이터를 쿼리셋으로 불러오고 그 쿼리셋을 page size에 맞게 자르는 듯한 느낌을 받았기 때문이다. def get(self, request): instance = Dataset.objects.all() page = self.paginate_queryset(instance) if page is not None: serializer = self.get_paginated_response(self.serializer_class(page, many=True).data) else: serializer = self.serializer_cla.. 2021. 11. 27.
2021.11.23 TIL : [Django] DRF5 - Pagination DRF를 이용해서 정보를 불러온 이후에 pagination을 통해서 불러올 개수를 조절하고 싶은 상황이 생겼다. 내가 pagination을 사용한 것은 무한 스크롤을 위해서인데, 프론트에 넘겨줄 때도 pagination을 이용해서 넘겨주면 된다. 그럼 프론트 측에서 페이지 사이즈가 넘어갔을 때 스크롤을 내리면 다음 페이지를 불러온다. DRF에서는 정말 제공하는 기능이 많은데, pagination도 그 중 하나이다. 특히 generic View를 사용하면 정말 간단하게 구현할 수 있다고 한다. 혹은 전체 프로젝트에서 페이지네이션을 하고 싶은 경우에는 settings.py에 딱 두 줄 정도만 추가하면 사용할 수 있다. 기본 Pagination도 세 가지가 있다. PageNumberPagination Limi.. 2021. 11. 23.