전체 글

Gyoogle (규글)
[자바스크립트] ES2015+ 요약 정리
·자바스크립트
ES2015+의 등장 기존의 자바스크립트 문법에 다른 언어의 장점들을 더한 편리한 기능들이 많이 추가되었습니다. 이 중에 노드에서 활용도가 높은 부분에 대해서 알아보도록 합시다. (자료는 조현영님의 Node.js 교과서를 통해 공부하고 정리했습니다) 1. const, let 보통 자바스크립트에서 변수를 선언할 때 var를 이용합니다. 하지만 이제 var는 const와 let으로 대체할 것입니다. const와 let은 함수 스코프를 가지는 var와는 달리 블록 스코프를 갖습니다. 블록 스코프는 if, while, for, function 등에서 사용하는 중괄호에 속하는데요. 따라서 const와 let을 이 중괄호 안에서 사용하게 된다면, 그 스코프 범위 안에서만 접근이 가능합니다. 이를 통해 호이스팅에 관..
파이썬(Python) 서버로 비트맵 이미지와 데이터 소켓 통신하기
·파이썬(Python)
클라이언트에서 비트맵 이미지와 추가로 2개의 데이터( Height, Width )를 전송할 때 이를 받고 통신할 수 있는 서버를 파이썬으로 구현했습니다. 테스트하기 위해 임시로 파이썬을 통해 클라이언트를 만들었구요. 실제로는 안드로이드가 클라이언트 역할을 할 예정입니다. 비트맵 이미지를 주고 받기 위해 클라이언트에서 바이트 형식으로 변환해서 주면, 서버에서는 필요에 따라 이를 바이트로 가지고 있거나, 이미지로 복원시키는 것이 가능합니다. 전체 구조는 아래와 같습니다. (client_ex.py는 연습용으로 만들었던거라 무시하셔도 됩니다.) 클라이언트에 해당하는 client.py와 전송할 비트맵 이미지인 test.bmp가 client 폴더에 위치해 있습니다. (test.bmp 이미지 입니다.) 서버는 총 4..
TCP 통신 파이썬(Python) 소켓 프로그래밍
·파이썬(Python)
파이썬을 이용한 서버와 클라이언트의 통신에 대해서 간단히 알아보겠습니다. 서버와 클라이언트는 소켓을 이용해서 데이터를 주고 받을 수 있는데요. 예제를 통해 알아보도록 합시다. server.py 1234567891011121314151617181920212223242526272829303132333435import socket def run_server(port=4000): host = '' with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((host, port)) s.listen(1) conn, addr = s.accept() msg = conn.recv(1024) print(f'{msg.decode()}') conn.sendall(..
Regex (정규표현식)
·정보
Regex (정규표현식) Regex( Regular Expression, 정규 표현식 )은 문자열을 검사할 때 사용합니다. 문자열에 특정한 규칙에 맞는 문자열이 있는지 확인하는 표현식이라고 말할 수 있겠습니다. 보통 회원가입 시에 많이 쓰이는데요. 예를 들면, 아이디가 4글자 이상이어야 하거나 비밀번호가 영문+숫자 조합으로 만들어야 하는 조건이 있는 걸 한번씩은 보셨을겁니다. 이럴때 사용하는 것이 바로 Regex입니다. 해당 모델의 스키마에서 match 안에다가 작성하는데요. match: [/정규표현식/, "에러메시지"]와 같이 사용합니다. 만약 정규표현식에 맞지 않은 값이 들어온다면, 에러메시지가 출력되는 형식입니다. 1234567891011name:{ type:String, required:[true..
구글 클라우드 플랫폼(GCP)으로 pgGAN 실행하기
구글 클라우드 플랫폼(GCP)으로 pgGAN 실행하기 여러가지 딥러닝 기술 중 pgGAN(progressive_growing_of_gans)을 GCP에서 gpu를 할당받아 실행해보는 과정을 진행해보겠습니다. 우선, 구글 클라우드 플랫폼에서 gpu를 할당받는 방법은 아래 포스팅을 참고하시면 됩니다. 2018/08/14 - [정보] - 구글 클라우드 플랫폼(GCP)으로 NVIDIA GPU 사용해보기 이 포스팅을 토대로 플랫폼을 사용할 환경이 다 만들어졌다면, pgGAN을 가져와보도록 하겠습니다. pgGAN github주소 : https://github.com/tkarras/progressive_growing_of_gans 이 주소를 통해 pgGAN의 전체 소스코드를 clone 해올 수 있고, README에 ..
구글 클라우드 플랫폼(GCP)으로 NVIDIA GPU 사용해보기
·정보
구글 클라우드 플랫폼(GCP)을 이용해서 GPU 사용해보기 최근 머신러닝, 딥러닝이 큰 이슈가 되고 있는데요. 이에 관심있는 분들이 만들고 싶은 모델의 훈련 속도를 빠르게 진행하려면, 대부분 성능이 좋은 GPU가 필요한데 기업이나 단체가 아닌 개인적으로 공부하는 사람들에게는 값 비싼 GPU를 구매하기 부담스러운게 사실입니다. 이런 사람들을 위해 구글에서 제공하는 클라우드 플랫폼을 이용해서 NVIDIA GPU를 빌려 사용할 수 있는 방법이 있는데요. 처음에 가입하면 무료로 제공해주는 크레딧을 통해 충분히 학습이 가능합니다. 한번 자세히 알아보겠습니다. 구글 클라우드 플랫폼 사이트 : https://cloud.google.com/?hl=ko 우선 구글 계정으로 플랫폼 가입을 진행합니다. 클라우드 플랫폼은, ..
의존성 주입 - DI(Dependency injection)
·스프링(Spring)
스프링을 시작하면, 가장 먼저 배우게 되는 핵심 내용은 바로 DI인데요. Dependency injection으로 의존성 주입이라는 뜻입니다. 바로 뼈대를 만들어놓고, 세부적인 요소가 변경되어도 쉽게 수정할 수 있도록 설계한 프로그래밍 기법이라고 말할 수 있겠습니다.스프링 컨테이너가 지원하는 핵심 개념 중 하나가 바로 의존성 주입입니다. 예를 들어볼게요. 클래스 A는 안에서 B를 생성해 가져오고, b의 a 메소드를 실행시키고 있습니다. 즉, '클래스 A는 클래스 B에 의존'하고 있다고 말할 수 있겠습니다. ( A has a B ) 이는 상당히 번거로운 문제점을 가지고 있는데요.만약 A에서 새로운 클래스인 C를 의존하고 싶어서 변경해야 한다고 생각해봅시다. 우리는 클래스 A안에서 B에 관련된 instanc..
스프링 프레임워크(Spring Framework) 시작
·스프링(Spring)
JSP와 Servlet을 통해 MVC패턴에 대한 원리를 어느정도 익히고나면, 바로 스프링 프레임워크에 대해 배우기 시작하는데요. 자바 개발자들의 표준과도 같은 스프링은, 동적인 웹사이트를 개발하기 위한 여러가지 서비스를 제공하는 툴입니다, 우리가 기존의 JSP와 서블릿을 나누어 MVC를 구현했는데, 이제 스프링 프레임워크를 사용하면서 좀 더 편하게 개발할 수 있게 됩니다. 스프링의 큰 주요 기능으로는 DI, AOP, MVC, JDBC를 제공한다는 점인데요. 앞으로 차차 배워보도록 하겠습니다. 스프링에 내재되어있는 다양한 모듈을 xml 파일을 이용해서 의존 설정을 해주며 사용하게 되겠습니다. 이클립스를 통해 스프링 개발을 하실 분들은, 메뉴바에서 marketplace를 통해 자신의 버전에 맞는 'STS'를..
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 - 7
Servlet/JSP로 사용자 관리 시스템 구현하기 과정 강의링크 : https://www.slipp.net/wiki/pages/viewpage.action?pageId=25526405 지난 게시글에서, 개인정보수정을 서블릿을 통해 구현하고 form.jsp에 view 페이지를 통합해서 중복을 제거하는 과정을 진행했습니다. 하지만, 우리가 현재 만든 개인정보수정 폼은 보안적인 측면에서 큰 문제가 있는데요. 어떤게 문제일까요? 실제로 수정된 정보를 입력해서 로직을 처리하는 UpdateUserServlet에서 현재 로그인된 사용자가 맞는지 확인하는 단계가 이루어지지 않고 있습니다. 이는, 제대로 된 경로가 아닌 접근을 통해 이 서블릿으로 어떠한 사용자가 접근한다면 맘대로 다른 사용자의 정보를 수정할 수도 있는..
[Git] 사용 요약
·정보
Git 사용 요약 git config --global user.name "이름" git config --global user.email "깃허브 메일주소" // 매번 물어보는 귀찮음을 피하기 위해 설정. mkdir ~/MyProject // 로컬 디렉토리 만들고 cd ~/myproject // 디렉토리로 들어가서 git init // 깃 명령어를 사용할 수 있는 디렉토리로 만든다. git status // 현재 상태를 훑어보고 git add 화일명.확장자 // 깃 주목 리스트에 화일을 추가하고 or git add . // 이 명령은 현재 디렉토리의 모든 화일을 추가할 수 있다. git commit -m “현재형으로 설명” // 커밋해서 스냅샷을 찍는다. git remote add origin https:..
Gyoogle