일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 막내의막무가내 안드로이드 코틀린
- 막내의막무가내 안드로이드
- 2022년 6월 일상
- Fragment
- 부스트코스
- 막무가내
- 막내의막무가내 프로그래밍
- 주엽역 생활맥주
- 프래그먼트
- 주택가 잠실새내
- 막내의막무가내 목표 및 회고
- 안드로이드 sunflower
- 막내의막무가내 코틀린 안드로이드
- 부스트코스에이스
- 막내의막무가내 SQL
- 막내의막무가내 플러터 flutter
- 안드로이드
- 막내의막무가내 일상
- 막내의막무가내 알고리즘
- flutter network call
- 막내의막무가내 코틀린
- 막내의 막무가내 알고리즘
- 프로그래머스 알고리즘
- 막내의막무가내 코볼 COBOL
- 막내의막무가내 플러터
- 안드로이드 Sunflower 스터디
- 막내의막무가내
- 막내의 막무가내
- 막내의막무가내 rxjava
- 막내의막무가내 안드로이드 에러 해결
- Today
- Total
목록분류 전체보기 (696)
막내의 막무가내 프로그래밍 & 일상

멀티미디어 스트리밍 프로토콜을 이용한 실시간 라디오 녹음 및 저장을 할 수 있는 프로그램을 python을 사용해 만들어봤다. RTMP 프로토콜을 사용해서 EBS 라디오를 녹음하고 HLS 프로토콜을 사용해서 KBS 라디오를 녹음할 수 있다. 그리고 녹음뿐 아니라 crontab을 이용해서 내가 정한 주기마다 라디오를 다운받을 수 있게 했다. 이렇게 녹음된 파일 들을 소켓 웹서버에 올리고 실행 및 다운을 할 수 있는게 최종 결과물이다. RTMP protocol: Real TIme Messaging Protocol, 인터넷 상에서 멀티미디어 스트리밍 서비스를 이용하기 위해서 사용하는 프로토콜중 하나이다. HLS protocol: HTTP Live Streaming, http 기반 미디어 스트리밍이고 apple에..

BGP Routing Table Data를 읽어 IP주소를 탐색한다. 1. 먼저 제공된 BGP Routing Table Data를 읽어 전처리를 한다. 2. 전처리된 파일을 읽어 Hash와 Trie 두 가지 알고리즘을 사용하여 input IP(입력된 ip)의 주소를 탐색하는 방법을 구현 한다. 3. 마지막으로 두 가지 알고리즘의 성능평가를 위해 그래프로 시각화하여 보여준다. 두개다 하나의 파일에 구현하였다. input파일은 다음과 같다. 먼저 전처리할 파일을 읽어온다. 파싱을 하고 같은 네트워크 아이피일 경우 Big Weight > High Local Pref > Short AS_PATH기준으로 하나의 아이피만 남기고 리스트에 저장한다. 전처리한 ip리스트를 pickle과 txt파일로 저장한다. (txt..

TCP socket을 이용한 Phillps Hue제어 HTTP Server 만들어보았다. 요약하면 다음과 같다. 1. 서버로 Docker를 사용한다. 2. 전구를 제어할 수 있는 post방식의 form을 담고 있는 Web UI 제작 (html) 한다. 3. 클라이언트에서 GET 요청을 하면 내가 2에서 만든 Web UI 반환해준다. 4. 웹페이지로 POST 요청을 보내고 서버에서는 해당 값을 받아 데이터를 파 싱 및 가공하여 브릿지 통신을 하여 Phillps Hue(전구)를 제어한다. 위는 전구를 제어하는 웹페이지인 hueController.html 파일이다. (실수로 head태그에 다 작성했다) form 태그는 post 방식으로 하였고 전원 on/off, 밝기 그리고 x, y 컬러값을 설정할 수 있다...

테스트를 위해 Locust라는 서버 테스트 도구를 사용하도록 한다. 그리고 도커 컨테이너 안에 서버를 두도록 한다. 서버는 단일 프로세스, 멀티 프로세스, 멀티 스레드 소켓 서버가 있다. python 코드로 구현하였다. 각 소 켓 서버의 성능을 테스트하고 차이점을 알아보았다. 가장 먼저 도커 안에 단일 프로세스, 멀티 프로세스, 멀티 스레드 소켓 서버를 만들고 클라이언트에서 locust를 사용해서 도커의 서버에 접속했다. 테스트환 경은 내 노트북 윈도우의 vmware 리눅스 안에 도커 서버를 두고 같은 와이 파이 환경인 친구의 맥북을 클라이언트로 사용하였다. 도커에서는 포트 8000번을 열고 외부에서는 1234 포트로 접속하면 된다. (포 트 포워딩) 참고로 locust 는 다운받고 locust 테스트할..

안드로이드 소켓 통신을 공부하면서 예시로 간단한 채팅을 구현해봤다. 폰 하나는 서버 다른 폰 하나는 클라이언트를 맡고 소켓 통신을 하는 결과를 구현했고 프로젝트는 서버와 클라이언트 두 개 로 나눠서 만들었다. [서버] 위의 getLoacalAddress() 메소드를 통해서 현재 내 휴대폰의 ip를 알 수 있고 TextView에 set해준다. 클라이언트에서 서버 ip를 알아야 접속이 가능하므로 필요하다. ServerSocketOpen()은 Open Server 버튼을 누르면 동작할 온클릭 메소드이다. [62~78라인]: 소켓을 생성할려면 포트번호가 필요하다. 그러므로 포트번호를 editText에서 입력했는지 검사 후 서버 소켓을 생성한다. 안드로이드에서는 소켓 통신을(네트워크 통신) 할 때 스레드가 필수적..

도커를 서버로 두고 다른 컴퓨터를 클라이언트로 두어 소켓 통신을 사용해 웹페이지 서빙을 해보았다. [선 결론] TCP 소켓을 사용해서 HTTP 서버를 만들었다. 클라이언트와 서버 소캣 파이썬 코드를 각각 만들어 통신을 해보고, cURL, Telnet, Web browser를 통해서도 소켓 서버에 요청과 응답을 받아봤다. 또한 브라우저로 접속했을때 내가 만든 웹사이트를 띄워주도록 하였다. 마지막으로 wireshark를 통해서 packet capture를 하여 tcp소켓 통신을 어떻게 하는지 볼 수 있었다. 먼저 서버가될 docker 컨테이너 서버 소캣의 ip를 설정해주기 위해 docker 컨테이너내에서 ifconfig로 확인한 결과이다 도커 로컬 ip가 172.17.0.2임을 알 수 있다. 그래서 http..

도커내에서 웹 프레임워크를 활용해서 웹 페이지를 서빙해봤다. 이를 위해 nginx, uwsgi, django를 사용한다. uwsgi는(Web Server Gateway Interface) 웹서버와 웹 애플리케이션의 인터페이스를 위한 파이선 프레임워크다. nginx(서버)가 보낸 요청을 django가 알아들을 수 없다. 즉 둘은 직접 연동이 안된다. 그래서 uwsgi를 사용해서 nginx 보낸 요청을 파이썬으로 해석해서 django와 연동되게 해주고 알맞게 웹페이지를 불러오게 해준다.(간단히 말하면 uwsgu가 인터페이스 역할을 한다.) 또한 nginx는 정적인 웹만 지원하므로 동적 웹, 데이터베이스 연동을 위해 웹 어플리케이션인 django가 필요하다. Client – Server(nginx) – Soc..
[2021-04-13 업데이트] 출처 :커니의 코틀린(강추!) 밑 링크에 예제를 좀 더 자세히 포스팅 했습니다. 참고해주세요 :) https://youngest-programming.tistory.com/578 [안드로이드] 코틀린 범위지정함수(Scoping Functions) - let, run, with, apply, also - 코드에러나서 고치는 [코틀린의 특징] 코틀린은 인틸레지에서 만든 언어로 JVM에서 동작하고 자바와 100% 호환된다는 특징을 갖고 있습니다. 이밖에도 Null Safety, 함수형프로그래밍, 확장함수, 코드의 간결함 등 다양한 youngest-programming.tistory.com let() fun T.let(block: (T) -> R) : R 이 함수를 호출하는 객체..
[2021-04-13 업데이트] 출처 : 커니의 코틀린 => 책 추천합니다 ! 커니의 코틀린책을 보며 공부하는 중이다. 스트림 함수를 공부한걸 간략하게 정리하면서 공부할 수 있는 포스팅을 가질려고합니다. 그리고 필요한 함수를 원할 때 찾을수 있게 기록합니다. //데이터 val cities = listOf("Seoul", "Tokyo", "Mountain View") [변환] map() => 컬렉션 내 인자를 다른 값 혹은 타입으로 변환할 때 사용합니다. //데이터 val cities = listOf("Seoul", "Tokyo", "Mountain View") cities.map{ city -> city.length } .forEach{ println("length=$it")} cities.map{ ci..
String str = "" //example TextUtils.isEmpty(str); //null 혹은 "" 인지 체크 ObjectUtils.isEmpty(obj) //String / List / Map / [] 형태의 Object들의 null 그리고 빈값을 체크 출처: https://gun0912.tistory.com/1 [박상권의 삽질블로그] https://gun0912.tistory.com/1 [안드로이드/JAVA]클래스(Object) 비어있는지 체크하는 방법 안드로이드뿐만 아니라 JAVA에서 변수를 사용하면서 해당 변수가 빈 객체인지 확인하고싶은 경우가 있습니다. Git에서 보기 주로 String이나 List가 비어있는지를 체크하는경우가 많은데요. String형인 A와 B변수.. gun0912..

최근 스프링 공부하기전 JSP, Servlet을 빠르게 복습하고 있다. 한글처리에대해 살짝 정리해보겠습니다. 밑과 같이 한글처리를 하는 방법은 두가지가 있는데 후자가 많이 쓰입니다. 전자는 매번 저렇게 하면 딱 봐도 비효율적... 1. JSP, Servlet에 직접 적어주는 방식 , server.xml도 밑에 그림의 글을 추가 2. Filter 사용 다음과 같이 생성하면 된다. Filter를 상속한 클래스를 생성했고 setEncoding을 해준다. 그리고 web.xml에 등록을 해준다. url 패턴을 /* 로 함으로써 모든 경로에 적용시켜주도록 한다. 출처: https://www.inflearn.com/course/%EC%8B%A4%EC%A0%84-jsp_renew/lecture/13668 불러오는 중입..

Nodejs 코드 정리를 해볼려고한다. 먼저 프로젝트 구조는 다음과 같다. 크게 controller, route, app으로 나뉜다. app.jsconst express = require( "express"); const router = require("./route/router"); const bodyParser = require('body-parser'); const app = express(); const port = process.env.PORT || 3000; app.use(bodyParser.json()) app.use(bodyParser.urlencoded({extended:true})) app.use(router); app.listen(port, err => { if(err){ consol..
정리를 잘해놓으셨다. https://andamiro25.tistory.com/193 [git]깃허브로 협업하기(Forking Workflow방식) Forking WorkFlow 방식의 협업 - 모든 프로젝트 참여자가 개인 로컬 저장소와 공개된 자신의 원격 저장소(중앙 원격 저장소를 fork한 것), 이 두개의 저장소를 가지고 협업을 진행하는 방식이다. - 모든 코드 기여.. andamiro25.tistory.com
평소 mysql에 저장되있던 sql file 쿼리문을 복붙하고 수정하는 식으로 했는데 갑자기 다 사라졌다. 나중에 테이블 기본 생성할때 편하게 하기 위해 복붙용으로 포스팅한다. create table route ( id int primary key auto_increment, x text(30000) not null, y text(30000) not null, user_id varchar(30) not null, title varchar(30) not null, content varchar(300) not null, photo_url text(200) not null, dates varchar(20) not null );

프로젝트에서 AWS와 노드로 서버를 구성하고 안드로이드 클라이언트 Retrofit2 통신에서 평소 @Field를 사용했는데, 계속 Json으로 서버에서 못받고 이상한 값이 넘어오는 현상이발생했다. 서버문제인지 클라이언트의 모델 문제인지 무슨 문제인지!!!!!! 삽질을 꽤 오래하고 틀리지도 않는 부분을 고쳐댔다........ (에러도 안나고 서버쪽에 값이 이상하게 들어가기만해서 몇줄이 틀렸는지 알 수가 없었다.ㅠ.ㅠ) 원인은 Retrofit2 인터페이스가 잘못되었었다. 먼저 요점만 말하면 @Field가 아니라 @Body를 사용해야했다. 덕분에 둘의 차이점을 알아보는 시간을 가지고 포스팅을 하게 되었다. 사건 배경(처음에 실수한 코드 사진) 밑과 같이 Json으로 보낼려고 했다. (DTO, POJO) Rou..