팩토리 패턴 (factory pattern) 객체를 사용하는 코드에서 객체 생성 부분을 따로 떼어내어 추상화한 패턴이자, 상속관계에 있는 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 대한 구체적인 내용을 결정하는 패턴이다. 상위 클래스와 하위 클래스가 분리되어 많은 유연성을 갖게 되고, 유지 보수성이 좋다. 면접을 위한 cs 전공 지식 노트 예제에서는 하위 클래스를 바리스타 공장으로, 상위 클래스를 레시피로 정의하여 예시를 보여주었다. /* 면접을 위한 cs 전공 지식 노트 예제 2. Factory pattern 상위 클래스인 객체 생성 부분을 추상화하고, 하위 클래스에서 객체 생성에 대한 구체적인 내용을 결정하는 패턴이다. 상위 클래스와 하위 클래스가 분리되어 많은 유연성을 갖게..
vscode에서 java project 생성하기 (Mac기준) 1. vscode를 실행한 후 project를 만들 폴더로 들어간다. 2. command + shift + p 를 누르면 아래와 같이 vscode 검색창이 뜨는데, java를 입력하고 그중 Java Create Project 선택 3. xoxowo는 단순히 java 언어 공부를 하기위한 파일 생성을 원하기 때문에 No build tools 선택 4. 생성할 프로젝트 이름 기입한다. 5. 생성하면 아래와 같이 project가 생성된다.
오늘의 일기 "장고 튜토리얼을 공부할 때 MVC 패턴에 대해서 짧게 배웠는데, 이게 뭘 어떻게 한다는 건지 대충 넘어갔었.... 다.... 그래도 다시 공부하는 겸.. 꼼꼼히 살펴봐야겠다...🙄" 프로그램을 설계할 때 발생하는 문제를 객체 간의 상호관계 등을 이용하여 해결할 수 있도록 형식화된 규약?이라고한다. 싱글톤 패턴 (singleton pattern)부터 MVVM 패턴까지 10가지의 패턴들이 있다. 싱글톤 패턴 (singleton pattern) 싱글톤 패턴은 하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴, 데이터 베이스 연결 모듈에 많이 사용된다. (데이터베이스 연결 모듈이라고 하니까 확 와닿았다. 감을 잡..았달까나..?) → Django에서 데이터베이스 연결 예시 DATABASES = ..
오늘의 일기 : 언어를 공부하면서 느낀 점은 비슷한 기능이지만 부르는 이름(?)이 달라서 각 공부하면서 개념을 정확하게 이해하는 것이 중요한 것 같다... 변수 (Variable) 변수는 클래스 변수, 인스턴스 변수, 지역 변수 세 종류가 있다. 변수가 어디에 선언됐는지 선언 위치에 따라 결정지어진다. 클래스 영역에 선언되는 변수는 클래스 변수와 인스턴스 변수가 있고 클래스 이외의 영역에 선언되는 변수는 지역변수가 있다. 클래스 변수와 인스턴스 변수를 구분하는 방법은 쉽게 변수 앞에 static이 붙어있으면 클래스 변수, 붙어있지 않은 변수는 인스턴스 변수다. 클래스 변수는 모든 인스턴스가 공통된 변수(저장공간)를 공유하게 된다. 따라서 모든 인스턴스들이 공통적인 값을 유지하거나 공유해야 할 속성의 경우..
배열 (Array) 같은 자료형의 데이터들을 연속적으로 메모리에 저장하는 자료 구조이다. (정적 배열) 서로 다른 타입의 변수들을 배열로 만들 수 없다. (python의 list와 비슷하다.) 선언과 생성 타입[] 변수이름; → 배열을 선언하는 것은 단순히 생성된 배열을 다루기 위한 참조 변수를 위한 공간이 만들어지며, int 타입일 경우 배열안의 값은 자동적으로 int의 기본값(default)인 '0'으로 초기화된다. 변수이름 = new 타입[길이]; → 연산자'new'에 의해 메모리의 빈 공간에 지정한 길이까지 데이터를 저장할 수 있는 공간이 생성(?)된다. // 타입[] 변수이름 = new 타입[길이]; int[] score = new int[5]; // 5개의 int 타입의 값을 저장할 수 있는 ..
먼저 배웠던 파이썬과 다르게 자바는 변수 선언 시 변수에 저장할 값이 어떤 타입인지 변수 타입을 변수 앞에 지정해주어야 한다. 정수형 변수 타입 4개의 자료형이 있으며 각 자료형이 저장할 수 있는 값의 범위가 서로 다르며, 일반적으로 int를 사용하는 편이 더 효율적이다. int의 범위 (약 -+20억)을 넘어서는 수를 다뤄야 할 때는 long 타입을 사용한다. int month = 9; // int 타입 int date = 17; byte b = 1; // byte 타입 short s = 2; // short 타입 long l = 3; // long 타입 실수형 변수 타입 실수형 정밀도에 따라 타입이 나뉜다. float타입보다 double타입이 약 2배 높은 정밀도를 가지고 있다. float f = 3..
이전 포스팅에서 작성했던 방법은 선택 항목이 늘어날수록 코드를 재수정해야 한다는 점 때문에 이번 3차 프로젝트에는 코드 리팩터링을 하다 Q객체를 이용하여 query string을 좀 더 확장성 있게 구현해 보기로 했다. 처음 equipment list url로 들어왔을 때 등록된 모든 장비 항목이 보여야 된다. 그 후 선택(옵션) 값을 Query string으로 값을 받아서 필터링으로 값을 빼와서 결괏값을 다시 전달해주면 된다. 마찬가지로 list를 보는 페이지는 equipment/list로 끝나게끔 url 주소를 정의했다. # equipment/urls.py 파일 from django.urls import path from equipment.views import EquipmonetListView, E..
Django를 이용하여 REST API를 설계할 때 settings.py 에서 INSTALLED_APPS 하단에 MIDDLEWARE 부분 중 몇몇 기능을 비활성화 처리하는데 그 중 이 'django.middleware.csrf.CsrfViewMiddleware' 부분에 대해 알아보려고 한다. CSRF - Cross Site Request Forgeries 사이트 간 요청 위조(또는 크로스 사이트 요청 위조)는 웹사이트 취약점 공격의 하나로, 인증된(권한을 가진) 사용자가 자신의 의도와 무관하게 공격자가 의도한 행위(수정, 삭제, 등록) 요청하게 하는 공격(해킹)을 말한다. 예를 들면 로그인과 같은 사이트에 인증된 사용자에게 해당 웹의 요청 중 하이퍼링크에 나쁜 코드를 심어 인증된 사용자에게 전송한다. 해..
- Total
- Today
- Yesterday
- git공부
- django.contrib.auth
- Java
- python3
- 커맨드 객체
- django-environ
- API
- 면접을 위한 CS 전공 지식 노트
- path variable
- 검색 결과 내 페이지네이션
- error: failed to push some refs to 'https://github.com/
- django
- Python
- musma
- 회원가입
- authenticate()
- git 공부
- Spring
- 혼자 공부하는 파이썬
- 암호화
- 회원 로그인
- 배열
- 한글 형태소 분석기
- Magazine K
- 환경 변수 설정
- 웹페이지
- 톰캣
- Django tutorial
- git
- 디자인 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |