윈도우에서 django-admin.py startproject를 통해서 프로젝트를 생성하려 했지만 프로젝트가 생성되지 않고 파이참에서 admin.py창이 켜지는 등의 오류가 나는경우가 있다 그런경우에는 다음과 같이 프로젝트를 생성해주면 된다. python (자신의 가상환경 주소)\Scripts\django-admin.py startproject (프로젝트 이름) .
Language
파이썬을 코딩할때 가상환경을 만들어서 사용하는게 좋다. 이유는 만약 다양한 모듈을 한번에 사용하게 되는 경우에는 가끔 패키지들간에 충돌이 발생하기도 하고, 간혹 환경변수를 잘못 설정하는 경우에는 파이썬 자체의 버전 또한 꼬여버리기 때문이다. 파이썬의 가상환경을 만들고, 실행하는 방법에 대해서 포스팅해볼 것이다. 예시로 폴더 하나를 만들어보자 C:\Users\jhopl\Desktop>mkdir venvtest 그 다음 만든 폴더 안으로 이동해준다. C:\Users\jhopl\Desktop\venvtest> 가상환경을 만드는 명령어는 다음과 같다. python -m venv (가상환경 이름) C:\Users\jhopl\Desktop\venvtest>python -m venv venvtest 명령어를 치면 위..
한 클래스내에 두개 이상의 동일한 이름을 가진 메소드를 선언하는것은 불가능하다. 그러나 이름이 동일한메소드에서 매개변수에 대한 정보가 서로 다르다면 동일한 이름을 가진 메소드를 두개 이상 선언하는것이 가능한데, 이를 우리는 메소드 오버로딩(Method Overloading)이라고 한다. 매개변수 정보가 서로 다르다는것이 어떤 의미일까? 코드로 보면 다음과 같이 볼 수 있다. 12345class test{ void a(int b){} void a(int c, int p){} void a(int d, double e){}}cs다음 클래스를 보면 a라는 동일한 이름을 가진 메소드가 3개 선언되었다. 첫번째 a라는 메소드는 정수형 b라는 매개변수를 두번째 a라는 메소드는 정수형 c라는 메소드는 정수형 d라는 매..
자바에서 예시들을 보면 public static void main(String[] args)라고 되어있는 main()함수를 볼 수 있다. 근데 main()이라고만 쓰면 되지 public static은 왜 붙는 것인가? 우선적으로 말하자면 main()함수는 자바에서 꼭 public static 선언을 해주어야한다. 이의 근거는 다음과 같다. 우선적으로 main()함수의 호출은 클래스의 외부로부터의 호출을 받는다. 즉 이 점에서 public선언을 해준다. 그 다음 main()메소드는 인스턴스 생성전에 호출이된다. 이 점에서 static선언을 해준다.(static 선언 성질 -> 인스턴스 정의 전에 호출할 수 있다.) 1234567891011class a { void b(){ System.out.println..
클래스 변수는 클래스 내에 정의된 변수에 static을 선언해 주면 '클래스 변수' 가 된다. 이와 동일한 방법으로 클래스 내의 메소드에 대해서 static선언을 해주면 '클래스 메소드'가 된다. 클래스 메소드와 클래스 변수는 매우 유사하디. 접근 방법도 동일하고 인스턴스 생성 이전에 호출이 가능하며, 어떠한 인스턴스에도 소속되어 있지 않다는 점 또한 동일하다. 클래스 변수의 특징은 다음과 같았다. 1 . 인스턴스 생성 이전부터 접근이 가능하다. 2 . 어떠한 인스턴스에도 소속되어있지 않다. 클래스 메소드 또한 이와 동일한 특성을 가진다. 우선 예시를 보면서 메소드 호출을 살펴보자. 12345678910111213141516171819202122232425262728293031class clmeth{ p..
인스턴스 멤버에는 인스턴스 변수, 인스턴스 메소드 이 두가지가 존재하였다. 그중 인스턴스 변수는 인스턴스를 생성하게 되면 생성하는 변수를 의미한다. 만약 '클래스 변수' 라고 한다면 이는 당연히 클래스가 생성되면 생성되는 변수를 의미할 것이다. 이번에는 클래스 변수에 대해 살펴보고자 한다. 클래스 내 선언된 변수 앞에 'static'이라는 키워드를 붙이게 되면 '인스턴스 변수'가 아닌 '클래스 변수'가 된다. 예시코드와 결과값을 한번 살펴보자. 12345678910111213141516class clasv { static int a = 0; clasv() { a += 1; System.out.println("인스턴스 총 개수 :" + a); }} class ma{ public static void mai..
JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk11-downloads-5066655.html Eclpise : https://www.eclipse.org/downloads/
감기약을 생각해보자. 감기약에는 다음과 같은 효능이 있다. 1 . 기침을 멈추게 해준다2 . 열을 내려주게 해준다3 . 코막힘을 없애준다 이 세가지 효능이 있다고 가정하자. 감기약은 이 세가지 효능을 하나의 '캡슐'안에 담아서 사람들이 이 '캡슐'하나만 먹으면 저 3가지 효능을 볼 수 있게끔 해준다. 자바에서의 캡슐화 또한 알약에서의 캡슐의 원리와 동일하다. 상황, 목적에 따라 캡슐을 만들듯 클래스를 캡슐화 하면 프로그램이 매우 간결해 질 수 있다. 캡슐화를 하지 못하면 프로그램이 복잡해지고 구현 과정이 어려워지기 마련이다. 밑의 예제는 캡슐화에 대한 두가지 경우의 예제이다. 1 . 12345678910111213141516171819202122232425262728293031323334353637383..
우리가 정보, 즉 인스턴스 변수를 은닉하기 위해서는 인스턴스 변수 앞에 private선언을 해주었는데 이러한 키워드를 통틀어서 우리는 접근 수준 지시자(Access - Level - Modifier)라고 한다. 접근 수준 지시자가 하는 역할은 말 그대로 접근 허용 수준을 결정할 때 사용된다. 접근 수준 지시자에는 4가지 종류가 있다 1 . public2 . protected3 . private4 . default 그렇다면 접근 수준 지시자는 아무데서나 쓸수 있을까? 아니다. 접근 수준 지시자를 선언할 수 있는 두가지 유형이 있다 1 . 클래스 : public, default만 선언 가능 2 . 인스턴스 변수와 메소드 : public default protected private 모두 선언 가능 우선 클래..
자바에서의 '정보'란 '인스턴스 변수'를 의미한다. 현재 포스팅의 제목의 정보 은닉을 다시 해석해 보면 즉 인스턴스 변수 은닉이라고 재 해석할 수 있는데, 그러면 왜 우리가 이 '정보'라는 것을 숨겨야 하는 것일까? 간단한 예제코드를 해석해 보자. 1234567891011121314151617181920212223242526272829303132333435363738394041424344//흔히 자바에서 말하는 '정보' 는 인스턴스 변수를 의미한다.class Circle { final double pi = 3.14; int rad = 0; public Circle(int r) { rad = r; setrad(r); } public void setrad(int r) { if(r
우리가 흔히 자바에서 생성자 개념을 배울 때 이러한 사실이 되게 중요하게 강조된다. 1 . 인스턴스 생성의 마지막 단계는 생성자 호출이다.2 . 어떠한 이유로든 생성자 호출이 생략된 인스턴스는 인스턴스가 아니다. 하지만 이 두가지 사실을 알게되면 의구심이 들 수 도 있다. 12345678910111213141516171819202122232425262728293031323334class banka { int balance = 0; public int deposit(int a) { balance += a; return balance; } public int withdraw(int a) { balance -= a; return balance; } public int balancechek() { System...
Java의 정수형 자료형 중에는 Long 자료형이 있다. 한가지의 예시를 들어보자. 12345class consta{ public static void main(String[] args){ long a = 3098309284209;}}Colored by Color Scriptercs 다음과 같이 long형 자료형 변수 a에 임의의 숫자를 넣었다고 하자. 그 다음 표준 출력문으로 a를 출력하려고 하면 값이 너무 크다는 문구와 함께 오류가 나오는 것을 볼 수 있다. 충분히 long자료형에 들어갈 수있는 크기의 숫자이다. 하지만 왜 들어가 지지 않을까? 자바에서는 Long형 정수의 표현 방법은 별도로 제공되지 않는다. long형 정수를 써야하는 다음과 같은 경우에는 컴파일러가 알아서 이를 long형으로 인식하..