일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- docker
- go
- 주키퍼
- leetcode
- 파이썬
- gradle
- OOM
- golang
- HBase
- codewars
- boj
- Go언어
- 자바
- programmers
- 튜토리얼
- redis
- 코드워
- Java
- Linux
- 리눅스
- DP
- 스칼라
- dynamic programming
- zookeeper
- scala
- 프로그래머스
- Python
- 문제풀이
- 알고리즘
- 동적프로그래밍
- Today
- Total
목록분류 전체보기 (111)
파이문
자바 컬렉션 스칼라에서 사용하기 scala 2.11 에는 TreeMap 이 없어서 자바의 java.util.TreeMap 을 사용하려고 하였다. 그러나 java.util.TreeMap 에는 map멤버가 없었다. 자바의 컬렉션도 스칼라 처럼 사용하고 싶었고 그래서 찾아보니 아래의 패키지를 사용하면 되었다. import scala.collection.JavaConversions._ import scala.collection.JavaConverters._ JavaConversions 를 쓰면 자동으로 컬렉션에서 scala 의 컬렉션 처럼 사용할 수 있게 되고 (예를 들면 map 이라든지 foreach 같은 멤버 함수들) JavaConverters를 쓰면 기존의 컬렉션 뒤에 asScala 를 붙여서 사용하면 된..
gradle build 는 되는데 run 이 안되었다. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager at .....(.....java:13) Caused by: java.lang.ClassNotFoundException: org.apache.logging.log4j.LogManager at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Lau..
Go 에는 testing을 할 때는 각 파일 명 뒤에 _test 를 붙여주면 (개인적으로 테스트 디렉토리를 따로 만들어 작성하는게 아니라, 각 파일이 위치하는 곳에 네이밍만 바뀌어 testing 한다는 것이 그닥 맘에 들지는 않으나) 손쉽게 작성할 수 있다. 참고로 go 의 testing 은 공식적으로 setUp과 tearDown 을 지원하지 않고 TestMain 을 이용해 해당 패키지의 main 을 작성하던가, 테스트 함수 리스트를 만들어서 돌리던가 하는 형식으로 하더라. 일단 레퍼런스들만 나열하고 나중에 예제를 정리해봐야겠다. Go 의 builtin 인 testing https://stackoverflow.com/questions/23729790/how-can-i-do-test-setup-using..
파이썬 call-by-value 일까 call-by-reference 일까(Python call by value vs call by reference) 결론부터 말하자면 passed by assignment 라고 한다. 즉, 어떤 값을 전달하느냐에 따라 달라지는 것이다. 파이썬의 자료형엔 크게 immutable(불변) 과 mutable(가변) 이 있다.int, str 같은 타입이 불변이고 list, dictionary 같은 타입이 mutable 이다. 불변 타입의 객체를 넘기면 call by value 가 되고 가변 타입의 객체를 넘기면 call by reference 가 된다. 즉 할당 되는 것에 따라 전달 방식이 달라지는 것이다. 어떻게 이것이 가능할까? 바로 파이썬에선 모든 것이 객체이기 때문이다...
django에서 데이터 베이스 여러개 사용하기(django multiple database) django에서 데이터베이스를 여러개 사용하려고 하는 경우 인터넷에서 검색해보면 router를 사용하라고 대부분이 말해주고 있다.(아래의 예시는 2.0 기준이며 모두 공식 홈페이지 레퍼런스를 참고 하였다.) django는 db router 라는 것을 제공하는데, setting에서 지정한 django naming을 따라서 각각 다른 데이터베이스로 연결해주는 클래스라고 보면 된다. 예제를 통해 정리해보면, 우선 settings.py 에 데이터베이스의 정보를 저장해놓을 것이다. 바로 아래 처럼.DATABASES = { 'default': {}, 'auth_db': { 'NAME': 'auth_db', 'ENGINE':..
Virtual Box CentOS 무선 인터넷 연결하기 Virtual Box에 CentOS 7을 깔고, yum update 를 하려 하는데 yum update could not resolve host 에러가 났다. 왠지 느낌이 인터넷이 안되서 그런 것 같았다. 우선 인터넷에서 보고, Virtual Box 설정 창의 네트워크 탭에서 연결을 NAT 로 바꾸었다. 기본이 NAT라고 하는데, 나는 기본이 아니였다. (예전에 설치할 때 바꿨을 수도 있고) 그리고 /etc/resolves.cnf 에서 nameserver를 아래와 같이 변경하였다. 그 다음 ping 8.8.8.8 했는데 실패. 뭐가 문제인가 곰곰히 생각해보니, 내 컴퓨터가 무선랜을 사용하고 있다는 것을 깜박함. (근데 NAT는 왜 안되는지 모름. 네..
NQueen 문제 전형적인 DFS 문제다. 놓을 수 있는 자리에 퀸을 놓고 그 다음 자리(다음 row 혹은 다음 col) 에 퀸을 놓을 수 있는지, 재귀로 확인한다.N*N 보드에는 무조건 N개의 퀸이 와야 하는데, 그러려면 한 줄 (row 는 물론이고 col) 에 무조건 퀸이 하나 있어야 한다. 그러니, 즉 줄 단위로 확인해 가면서 퀸을 놓는지 확인하고, 놓을 수 있다면 그 다음 줄로 넘어가는 DFS 인 것이다. 물론 모든 칸을 다 확인해가면서 자리를 찾을 필요는 없고, 퀸이 절대로 있을 수 없는 자리를 가지치기 하면 된다. 퀸은 다른 퀸이 있는 자리에서 세로/가로/좌 대각선/우 대각선에 해당 하는 곳은 위치할 수 없다.그러니, 처음에 퀸이 있을 수 있는 자리에 임의의 값 1을 대입하고, 그 다음 줄로 ..
[django] 템플릿에서 Custom tag / filter 사용하기 django에서 딕셔너리와 조회할 키가 주어졌을 때, 해당 키로 딕셔너리에 접근하고 싶었는데 jinja2 레퍼런스를 비롯해서 django 레퍼런스에도 해당하는 내용이 없었다. 그래서 찾아본 것이 Custom template tags and filters 이다.django 에서는 템플릿에서 custom filter, tag를 사용할 수 있게 제공하는데, 완전 센세이션. 우선 (꼭! 오타 조심!) templatetags 라는 디렉터리를 생성한다. 이 때, 디렉터리 안에는 무조건 __init__.py 가 있어야 한다. (구조는 아래 처럼 되어 있어야 한다!)polls/ __init__.py models.py templatetags/ __i..
[MySQL] Centos7에서 mysql 설치하기우선 설치하기에 앞서, 관련 된 패키지를 설치 / 업데이트 한다.sudo yum update sudo yum install wgetmysql 저장소 다운로드 하고, 업데이트 한다.wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm sudo yum updatemysql 을 설치하고 실행한다.sudo yum install mysql-server sudo systemctl start mysqldcentos7 부터는 mariadb로 저장소가 바뀌었다나, 뭐래나 해서 yum install 로는 설치..
Python 문자열 Python3.X와 2.X 에는 몇 가지 차이점이 있는데, 그 중 하나가 바로 문자열 타입에 관한 것이다. Python3.X 에는 문자열 타입은 총 2가지가 있다.strunicode로, 'hello' 같은 형태로 주로 표현한다.bytesstring 으로 b'hello' 처럼 표현한다. Python2.X 에는 문자열 타입이 3가지다.strstring으로 'hello' 라고 표현한다.bytesstr이랑 같다.unicodeunicode로 u'hello' 라고 표현한다. Python2.X 에서 한글을 사용하면서 종종 UnicodeEncodeError: 'ascii' codec can't encode character 와 같은 에러를 자주 접했을 것이다.그럴 때 마다, 답변 대부분이 Pytho..