목록프로그래밍 언어 (72)
나의 지식 보관소
들어가기에 앞서 이 글은 후에 복습 목적으로 저의 얄팍한 영어를 사용해 https://flask.palletsprojects.com/en/2.0.x/quickstart/ 그대로 해석해서 올린 것임을 알립니다. 커맨드라인에서 실행하는 명령어 같은 경우 원글에서는 Bash Shell, CMD, Powershell등 종류마다 친절하게 기입되어있으나 제 글에서는 Bash 명령만을 기재하였으므로 CMD나 Powershell의 명령이 필요하시면 원글에서 확인해주시길 바랍니다. 혹 잘못된 해석이나 정보를 발견하셨을 경우 댓글에서 알려주시면 따뜻한 커피 한잔 대접해드리겠습니다. Quickstart 플라스크를 시작하시길 원하시나요? 이 페이지는 플라스크 입문에 도움을 줄 것입니다. 먼저 플라스크 설치와 프로젝트 설정을 ..
MinGW 깔고 환경변수 설정은 되어있다고 전제한다. C언어 확장을 다운받고 설정에서 System Include Path에 setting.json을 들어간다. 다음과 같이 아래 텍스트를 추가한다. "C_Cpp.default.compilerPath": "C:\\MinGW\\bin\\g++.exe", "miDebuggerPath": "C:\\MinGW\\bin\\g++.exe" Terminal->Cofigure Default Build Task... 에 들어가서 gcc 를 선택해준다. 그 후 Run->Add Configuration...을 선택해준 후 GDB를 선택하고 gcc를 선택해준다 그럼 끝이 아니라 디버깅 관련 정보를 담고 있는 launch.json 파일의 "configurations" 하위의 "ex..
Map map() 함수는 매개변수로 function과 iterable를 전달 받아 iterable의 모든 항목에 fuction을 적용한 후 그 결과를 이터레이터로 돌려줍니다. 만약 iterable 두개를 인자로 전달하면 function 또한 두개의 인자를 받아들여야합니다. 가장 짧은 iterable이 모두 소모되면 멈춥니다. def multiply(x, y): return x * y a = [1, 2, 3, 4, 5] b = [6, 7, 8, 9, 10] print(*map(multiply, a, b)) # 6 14 24 36 50 print(*map(lambda x, y: x + y, a, b)) # 7 9 11 13 15 Reduce functools 모듈안에 있는 reduce() 함수는 map() ..
Enumerate 파이썬에는 enumerate() 라는 내장함수가 존재한다. 이 함수는 매개변수로 iterable한 데이터를 받는데, 이 enumerate() 함수에 의해 반환된 iterator의 __next__() 메서드는 기본적으로 0부터 시작하는 카운트와 iterable 객체를 이터레이션해서 얻어지는 값을 포함하는 튜플을 돌려준다. seasons = ['Spring', 'Summer', 'Fall', 'Winter'] list(enumerate(seasons)) # [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')] list(enumerate(seasons, start=1)) # [(1, 'Spring'), (2, 'Summer'), (3, 'F..
자바에서 클래스에 public 접근제한자를 추가하기 위해서는 그 클래스의 이름이 파일명과 동일해야한다. ( 파일명과 일치하는 클래스 내부에서 다른 클래스를 포함하는 경우는 public이 가능하다. ) 이러한 제한이 있는 이유는 가독성에 도움을 주기 위함인데, 하나의 자바파일에 여러 개의 클래스를 작성하는 경우 대표클래스를 지정하고 파일명과 동일하게 하는 것이 가독성에 도움이 된다.
테스트 주도 개발에 대한 책을 보던 중 이상한 코드를 발견했다 추상클래스의 추상메서드를 하위 클래스에서 오버라이딩하는데 리턴타입이 다른데도 컴파일이 정상적으로 됐다. 분명 상속관계에서 메소드 오버라이딩은 리턴타입, 메소드 이름, 매개변수가 완전히 동일해야 이루어진다고 배웠었는데.. 하고 검색해보니 자바한정으로 ( 사실 다른언어도 되는진 잘 모르겠는데 C#에서는 안되는걸 확인했다. ) 다음 두가지 조건을 만족하면 리턴타입이 달라도 오버라이딩이 허용된다. - 반환형이 원시타입이 아닌경우 - 상위 클래스의 메서드의 반환형으로 오버라이드된 메서드의 반환형이 자동 형변환이 가능한 경우 class Base { public Object display(String obj) { System.out.println("Bas..
junit을 통한 테스트를 위한 코드와 소스코드를 분리하기 위해서 폴더를 구분하니 두 코드를 동일한 패키지에 둘 수가 없어서 곤란하던 차에 maven을 이용해봤다. maven을 통해 프로젝트를 생성하면 아래 사진처럼 경로 전체가 패키지명이 아니라 끝부분만 패키지명으로 사용하고 있는 것을 볼 수 있다. maven 없이 저렇게 패키지를 사용하기 위해서는 우선 자바 프로젝트 생성시 기본으로 생성되는 src가 Java Source Path로 지정되어있는 것을 풀고 다음과 같이 폴더를 만들어주면 된다. 나는 com.practice.tdd를 패키지명으로 사용할 생각이기 때문에 src\main\java와 src\test\java 폴더를 Java Source Path로 지정해주면 된다. 이렇게 하면 아래 사진처럼 경로..
파이썬에서 클래스에 직접 접근할 수 있는 메서드 즉 정적메서드는 두가지로 @staticmethod와 @classmethod라는 데코레이터를 사용하여 정의한다. 정적메서드이기 때문에 인스턴스 메서드처럼 self 인자를 갖지 않는다. 또 다른 언어들과 다르게 인스턴스에서도 정적메서드에 접근이 가능하다. 우선 @staticmethod는 다음과 같이 사용한다. class MyClass: @staticmethod def add(a, b): return a+b myclass = MyClass() print(myclass.add(1,2)) @classmethod는 다음과 같이 사용한다. class MyClass: @classmethod def add(cls, a, b): return a+b myclass = MyCl..