소켓 통신, 서버소켓을 구현하고 수신한 데이터(바이트)를 문자로 변환하는 작업을 해보게 되었다. 그 과정에서 알게 된 개념과 정보들을 기록해보고자 한다. 소켓(Socket) **소켓(Socket)**은 TCP/IP 기반 네트워크 통신에서 데이터 송수신의 마지막 접점을 말한다. 소켓통신은 이러한 소켓을 통해 서버-클라이언트간 데이터를 주고받는 양방향 연결 지향성 통신을 말하는데, 보통 지속적으로 연결을 유지하면서 실시간으로 데이터를 주고받아야 하는 경우에 사용된다. 소켓은 클라이언트 소켓과 서버 소켓으로 구분되며, 소켓간 통신을 위해서는 네트워크상에서 클라이언트와 서버에 해당되는 컴퓨터를 식별하기 위한 IP주소와 해당 컴퓨터내에서 현재 통신에 사용되는 응용프로그램을 식별하기 위한 포트번호가 사용된다. 서버..
자바 스레드를 공부하는데 관련 설명들을 보는데 프로세스, 스레드, 멀티태스킹, 멀티 프로세싱, 멀티 스레딩 등 너무 헷갈리는 용어들이 많았다. 먼저 알아야 하는 용어부터 짚고 가겠다. 프로세스(process) ‘실행 중인 프로그램(program)’ 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다. 프로세스 = 프로그램을 수행하는데 필요한 자원(데이터와 메모리 등) + 쓰레드 로 구성 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드 이다. 쓰레드(Thread) 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드 이다. 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재. 둘 이상의 쓰레드를 가진 프로세스를 ‘멀티쓰레드 프로세스(mul..
업무중 회사 NAS를 재부팅한다는 얘기를 들은 후, 누군가 형상관리 서버 연결이 안된다는 얘기를 하셨다. NAS 서버를 재부팅하는데 형상관리서버가 안된다.? 누군가는 형상관리서버랑 NAS재부팅이랑은 관련 없을텐데 하시다가, SVN, Git..... 아, Git이 있었지 라는 말을 하셔서 어떻게 서버가 구축되어있는지 궁금해서 찾아보게 되었다. 아래 블로그에서 나스서버에 깃, 깃랩서버를 적용하는법을 자세히 다루고 있다. 나스에 Git 서버 적용하기 시놀로지 나스에 Git 서버 적용하기. 우분투에서 깃을 사용하다가 HDD가 깨지는 바람에 자료가 다 날라갔다. 이것저것 알아보다가 회사에서 가지고 있던 시놀로지 나스가 있어서 여기에 깃 서버를 설치하기로 했다. 1. 깃 서버 설치 1v1in.tistory.com ..
깃 소스트리에서 프로젝트 선택시 갑자기 위와같은 에러메세지가 발생하였다. 검색했을때 해당 디렉토리를 아래와같은 명령어를 쳐서 해결했다고 하는데 나는 해결이 되지 않는 것이었다. $ git config --global --add safe.directory '디렉토리경로' 해결방법은 에러메세지에 나온 경로이 있는 .gitconfig 파일을 삭제하면 된다. 도움을 주신 아래블로그 감사합니다. [Git] fatal: bad config line 1 in file .gitconfig 해결 방법 서론 git 조작을 잘못 하다가 gitconfig쪽 설정에 문제가 생겨 포스팅 제목과 같이 에러가 발생하는 경우를 접할 수 있다. 해결 방법은 정말 쉬우나 갑자기 위와 같이 에러가 발생하면 당황하여 필 jeongkyun-i..
백엔드 개발중에 DB에서 필드를 조작한 후 조작한 값에 따라 groupBy로 그룹핑을 해야하고 집계를 내야하는데 JPA queryDSL로 짜여져서 필드조작이 자유롭지 않은 상태가 발생했다. 필드를 subString으로 조작해보려고 하니 사용자정의함수를 추가해주고, QClass등 추가해줘야하는 것들이 많았다. 아직 JPA가 익숙하지 않은 상태라 무작정 따라하기보다, 로직단에서 그룹핑할 수 있는 방법을 찾아보던 중에 스트림처리로 groupby처럼 키값을 기준으로 그룹핑할 수 있는 방법을 찾았다. GroupingKey를 나타내는 class를 만들어주고 Java1.8의 stream + groupingBy 기능을 활용하면 groupingBy를 수행할 수 있다. 1. 먼저 Grouping 에 활용될 GroupKey..
Python을 공부하기위해 Anoconda를 설치하고 가상환경을 만들고 원하는 파이썬 버전으로 환경을 세팅해주었다. 기본적으로 구성되는 파이썬 버전은 3.11이었는데 다는 3.9버전이 필요했다. Conda activate명령어를 통해 내가 원하는 가상환경을 만들고 그 환경에서 원하는 파이썬 버전을 설치 후 주피터노트북을 열어 코드를 작성하면 되는데, 내가 설치한 파이썬 버전이 적용되지 않는 문제가 생겼다. 분명 파이썬 버전을 3.9버전으로 설치했고 가상환경에 파이썬 버전도 3.9버전으로 찍히는데 주피터노트북에서 확인한 버전은 예전 3.11버전이 계속해서 나오는 것이었다. 이유를 찾아보니 커널을 연결해줘야한다는데... 무슨 말인지 잘 이해가 되지 않았다. 이후 Rust를 공부하기위해 러스트용 가상환경을 만..
Kotlin Notebook 파이썬 공부를 할 때 Jupyter notebook을 이용하면 코드를 한줄 한줄 쉽게 실행시켜 볼 수 있듯이, 인텔리제이에서도 코틀린을 한줄 한줄 쉽게 실행시킬 수 있도록 인텔리제이에서 플러그인을 제공한다. 초반에 코틀린을 간편하고 쉽게 실행시키며 공부하기에 용이한 것 같다. 생성하는법 1. 인텔리제이 플러그인 Python 설치 shift를 두번누르면 검색창이 뜬다. 거기에 Plugins를 검색하고 아래 창으로 들어온다. 여기서 Python 을 검색하여 설치한다. 2. 인텔리제이 플러그인 Kotlin Notebook 설치 3. 새 프로젝트 생성 4. 새로운 노트북 파일 생성 기본으로 생성된 메인 디렉터리랑 같은 계층에 따로 디렉토리 생성 후 그곳에 코틀린 주피터 노트북 파일을..
스프링부트로 프로젝트 생성 후 JAR로 배포를 해야 하는 상황이다. 서버에는 WAS가 없는 상태이고, 부트에서 내장서버 포함하여 JAR로 배포를 해야한다. 톰캣이 깔려있었다면 WAR로 말아서 서버에 배포를 하면 되었을거다. 이클립스로 Runnable jar로 말면 된다고 하는데, 인텔리제이로 빌드해본적이 없어서 어떻게 하는지 찾아보니 bootJar 라는거로 빌드하면 실행가능한 jar파일이 생성된다고 한다. fatJar로 말으라는 얘기를 들어서, fatJar는 뭔지 또 찾아보다보니 내 궁금증을 해결해 준 블로그 글이 있어 링크를 남겨둔다. 일단, 빌드할 때 생성되는 war, jar 등을 Archive라고 한다. 컴파일한 class, 리소스파일 등을 다른 트리형태로(war/jar) 압축한 것을 Archive..
- Total
- Today
- Yesterday
- React
- 객체지향
- di
- 자바스크립트
- 리액트
- 자바의정석
- 이정환
- 친절한SQL튜닝
- 컨테이너
- MySQL
- EC2
- Spark
- spring
- security
- @Configuration
- Node.js
- 스프링의정석
- 시큐리티
- 한입크기로 잘라먹는 리액트
- 스프링 빈
- node
- 인덱스
- 코드로 배우는 스프링 웹 프로젝트
- AWS
- 스프링
- 스프링 프로젝트
- 데이터베이스
- JavaScript
- 남궁성
- 데브캠프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |