목록분류 전체보기 (67)
The Boxer
django를 사용하여 image upload 구현 필요 설치모듈: pillow pip install pillow I. 설정 (1) 파일 업로드용 url 경로 설정 - django는 이미지등의 정적 파일들을 media라는 폴더에 저장하고 관리 - django에서 어디에 media폴더가 있는지 알려주어야함 settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 이미지가 저장될 경로를 설정 MEDIA_URL: 이미지가 저장된 경로를 url에서 표현 MEDIA_ROOT: 실제 이미지가 저장된 경로 urls.py from django.conf.urls.static import static from django.conf impo..
django에서 model을 사용해 form태그를 관리하고 적용 I. form (1) forms - django가 클래스로 form 태그를 생성 - 설정한 모델을 기반으로, django가 만들어 주는 form - 클래스로 form태그를 제어한다 예시 if form.is_valid(): form.save() return redirect('shouts:home') form 클래스 생성(forms.py) # form class from django import forms from .models import Shout # Shout 모델에 기반하여 django가 만들어주는 form class ShoutFrom(forms.Form): title = forms.CharField(max_length=10) conte..
알아둘 것: 버전관리를 위해 천천히 그리고 깔끔하게 코딩하는 습관을 몸에 배기 initial commit 전 README.md 생성 I. commit - commit은 로지컬 단위로 로지컬 단위: 프로그래머의 판단에 따라. 보통 기능 단위로 설정 - commit 메세지만으로 작업 내역을 알 수 있게 commit 메세지는 최대한 자세하게 추가된 파일, 어떤 기능을 추가하였는지 쓰기 - commit history: 한번에 커밋하지 말고, 파일, 기능별로 commit commit history만 보고도 멀리 있는 사람과 협업이 될 정도로 작성 - 하루 작업량 완료 후 push II. 유용한 url - https://gitignore.io/: gitignore 자동 생성 - Parti github: 잘 작성한 ..
[ Git 취소하기 ] git을 사용하는 과정에서 발생하는 실수를 되돌리는 방법 I. git add 취소 - 실수로 stage한 파일, 폴더 취소 git reset HEAD 적용 예시 $ git add * $ git reset HEAD .idea/ Unstaged changes after reset: M file.xml II. git commit 취소 - commit된 모든 파일, 폴더 commit 취소하고 stage 상태로 되돌림 git reset --soft HEAD^ - commit된 모든 파일, 폴더 commit 취소하고 unstage git reset --mixed HEAD^ git reset HEAD^ - 지금까지 작성한 모든 내용을 취소하고 특정 커밋으로 되돌림 git reset --hard..
[ Git 기본 개념 ] 버전 관리를 위한 툴 원격저장소: 원격에 존재하여 자료를 관리하는 저장소 ex) github, gitlab 등등... git에서 가장 중요한 부분은 원격저장소에 저장된 코드 진리는 원격저장소에... (1) Commit - 원격저장소에 코드를 올리기 전 로컬에 자료를 저장 - 메세지와 함께 commit이 가능 - push를 할 경우 로컬에 존재하는 commit된 자료가 원격 저장소에 저장 (2) Push - 로컬에 commit된 자료를 모두 원격 저장소에 올림 - "-u" 옵션 적용시 지속적인 변경관리 가능 (3) Pull - 원격 저장소에 있는 내용을 로컬 저장소에 적용 I. git 기본 문법 - git 관리 폴더 생성: 현재 위치를 기준으로 모든 폴더 및 파일을 git이 관리 ..
[Bean, Java Beans]정의 : 어플리케이션 컴포넌트를 지칭하는 단어(클래스, 패키지, 모듈 같은 부품들...) 반복적인 코드를 재사용하기 위해서 만들어진 클래스들 이며, 자바에서 지정하는 표준에 따라 작성됩니다. 특성- 모든 속성이 private(getters, setters 사용)- public이고 매개변수 없는 생성자 사용- Serializable을 상속 => stream으로 변환될 수 있으며, 파일, 데이터베이스 등에 쓰기 가능 [POJO(Plain-Old Java Object)]정의 : 평범한 자바 오브젝트. 자바 개발자가 마음대로 정의할 수 있는 객체 일반적으로 개발자가 제한조건도 없이 개발 환경에서 자유롭게 만들어 낸 모든 객체를 의미합니다. [참고 자료]자바 빈에 대한 stack ..
[UML]Unified Modeling Language : 통합 모델링 언어 여기서 모델링이란 소프트웨어를 실제로 만들기 전에 미리 검증하는 것입니다.이는 개발 프로세스중 설계 단계에서 진행하며 의사소통 논의, 전체 구조 및 클래스 의존 파악, 유지보수 문서 생성을 위해 사용합니다. [클래스 다이어그램(Class Diagram)]UML은 크게 개념, 명세, 구현의 목적에 따라 다르게 사용됩니다. - 개념 : 문제 도메인의 구조를 나타내며 도메인 안에 있는 개념을 기술하기 위한 것.- 명세, 구현 : 소프트웨어의 설계 혹은 완성된 소프트웨어의 구현 설명을 목적으로 작성되며, 소스코드와 관계가 깊습니다.이제부터 다룰 클래스 다이어그램은 명세, 구현 차원에서 사용되며 실제 소스코드를 토대로 작성됩니다.클래스 ..
[디자인 패턴(Design Patter)] 소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 다시 발생했을 때 재사용 할 수 있는 해결책 기존의 소프트웨어 설계 단계에서 해결했던 문제를 정립하여 다시 그 문제가 발생했을 때 재사용 하기 위한 방법입니다. 각기 다른 소프트웨어 모듈이나 기능을 가진 시스템을 개발할 때도 서로 간에 공통되는 문제와 해결책이 존재합니다. 이런 유사점을 패턴이라고 합니다. 패턴을 정립하여 공통의 언어를 만들면 팀원 사이에 의사 소통이 원활해지며 코드를 이해하기도 쉬워집니다. [디자인 패턴의 구조]- 콘텍스트(Context) : 문제가 발생하는 상황. 패턴이 적용될 수 있는 상황.- 문제(Problem) : 패턴이 적용되어 해결될 필요가 있는 여러 디자인 이슈...
[아키텍처 패턴(Architecture Pattern)]정의 : 주어진 상황의 소프트웨어 구조에서 발생하는 문제점을 해결하기 위한 일반화된 재사용 가능한 솔루션 아키텍처 패턴은 디자인 패턴보다 더 큰 범주에 속해 있으며 소프트웨어의 전체적인 그림을 만드는 솔루션이라 할 수 있습니다.기존에 아키텍처 패턴이 정립되지 않고 설계를 하다 보니 개발자간 소스 파악이 너무 힘들고 약속이 제대로 되지 않았습니다. 아키턱처 패턴은 소프트웨어 설계의 기본이며 자주 사용되는 모형들을 정립한 하나의 약속이라고 볼 수 있습니다.이번 포스팅에서는 기본적으로 자주 사용되는 몇 가지 아키텍처 패턴을 다뤄보겠습니다. [계층화 패턴(Layer Pattern)]- n-티어 아키텍처 패턴으로도 불립니다. - 하위 모듈을 그룹으로 나눌 수..
[스레드(Thread)]- 정의 : 프로세스 내에서 실행되는 세부 작업의 단위.- 여러 스레드가 모여서 하나의 프로세스를 구성할 수 있습니다.- 즉, 프로세스의 작업 단위를 나눈 것을 스레드라 할 수 있습니다. [특징] - 스레드는 프로세스 내의 다른 스레드들과 Code, Data, Heap 영역을 공유하고 자신만의 Stack 영역을 소유합니다.영역별 설명- Code : Program Counter(다음번에 실행할 명령어 주소), 프로그램 코드를 저장 => Code를 공유하기 때문에 두 개 이상의 스레드가 자신이 포함된 프로세스의 Code영역에 있는 함수를 호출할 수 있습니다.- Data : 글로벌 변수, 스태틱 변수 저장- Heap : 동적 메모리 할당 공간 => 메모리 영역을 공유하기 때문에 프로세스..