[JAVA] 소켓 프로그래밍, TCP 소켓 프로그래밍
·
Programming Language/Java
소켓 프로그래밍이란? 먼저 소켓(socket)이란 프로세스간의 통신에 가용되는 양쪽 끝단(endpoint)를 의미한다. 프로세스간의 통신을 위해서는 무언가가 필요한데 그것이 바로 소켓이다. 자바에서는 java.net패키지를 통해 소켓 프로그래밍을 지언하는데, 소켓통신에 사용되는 프로토콜에 따라 다른 조율의 소켓을 구현하여 제공한다. TCP와 UDP TCP/IP 프로토콜은 이기종 시스템간의 통신을 위한 표준 프로토콜로 프로토콜의 집합이다. TCP와 UDP 모두 TCP?IP 프로토콜에 포함되어 있으며, OSI 7계층의 전송계층에 해당하는 프로토콜이다. TCP와 UDP는 전송 방식이 다르며, 각 방식에 따른 장단점이 있다. 항목 TCP UDP 연결 방식 연결기반(connection-oriented), 연결 후..
[JAVA] 네트워킹 이해하기 & InetAddress
·
Programming Language/Java
네트워킹이란? 네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말한다. 자바에서 제공하는 java.net 패키지를 사용하면 네트워크 어플레이케이션은 단 몇 줄의 자바 코드 만으로도 작성이 가능하다. 클라이언트 / 서버 클라이언트/서버는 컴퓨간의 관계를 역할로 구분하는 개념이다. 서버는 서비스를 제공하는 컴퓨터이고 클라이언트는 서비스를 사용하는 컴퓨터가 된다. 서버 기반 모델 네트워크를 구성할 때 전용 서버를 두는 것을 서버 기반 모델이라고 한다. 서버 기반 모델의 특징으로는 다음과 같다 안정적인 서비스의 제공이 가능하다. 공유 데이터의 관리와 보안이 용이하다. 서버구축비용과 관리비용이 든다. P2P 모델 별도의 전용서버없이 각 클라이언트가 서버역할을 동시에 수행하는 것을 P..
[SpringBoot] AnnotationException: targets an unknown entity named : 조인 맵핑 시 데이터 타입이 다를 경우 발생하는 에러
·
Framework/SpringBoot
에러 메세지 Caused by: org.hibernate.AnnotationException: Association 'org.coteis.domain.article.Article.algorithmNo' targets an unknown entity named 'java.lang.Integer' 발생 배경 @ManyToOne @JoinColumn(name = "algorithm_no") private Integer algorithmNo; @ManyToOne @JoinColumn(name = "difficulty_no") private Integer difficultyNo; @ManyToOne @JoinColumn(name = "language_no") private Integer languageNo; @M..
[SpringBoot] CommandAcceptanceException : table명이 예약어일 때 발생하는 Exception
·
Framework/SpringBoot
발생 배경 resource 의 data.sql 파일에 값을 넣고 실행하니 CommandAcceptanceException 이 발생하였다 중략 맨 마지막 SQLSyntaxErrorException을 보고 문법이 잘못되었나 싶었는데 그건 아니었다. 원인 파악 CommandAcceptanceException에 대해 검색해보니 원인은 다양했다 하이버네이트가 table을 만들 때 drop하지 못해서 계정의 권한으로는 할 수 없는 쿼리를 작성해서 SQL이나 H2의 예약어를 사용하여 Entity를 작성해서 나는 1번 사항에는 해당하지 않았다 하이버네이트가 table을 drop 하는 것은 확인되었기 때문이다. 2번 사항도 user 테이블 말고 다른 table에 insert하는 데에는 오류가 발생하지 않았기 때문에 해당..
[React] 리액트 앱 생성하고 실행하기
·
Framework/React
리액트 앱 생성하기 1. 먼저 리액트를 실습할 폴더를 만들어주세요. 이 때 폴더 이름은 너무 길거나 대문자가 포함되어 있으면 안됩니다 ㅠㅠ 2. vscode 터미널 창에 npx create-react-app . 을 입력하세요 .을 입력하면 현재 디렉터리에 리액트 앱이 생성되고, 디렉터리 이름을 따로 입력하셔도 됩니다. +) npx 는 node package execute의 약자로 노트 패키지 실행이라는 명령입니다. Happy hacking 이라는 문구까지 확인하면 reactstudy 폴더에 뭔가 되게 많이 생겼을겁니다. create-react-app 으로 생성한 리액트 앱 또한 Node.js 패키지 입니다. 따라서 폴더 아래에 package.json, package-lock.json, node_modul..
[JavaScript] 데이터 단위 변환기 토이 프로젝트 만들어보기
·
Programming Language/JavaScript
안녕하세요~ 드디어!! 자바 스크립트의 함수, 액션리스너를 사용하여 데이터 단위 변환기 프로젝트를 진행해보겠습니다. 진짜... 너무 쉬워서 한시간이면 다 만들거에요 HTML, CSS 소스 준비 깃허브, zip 파일 소스코드 복사 등 편하신 방법으로 소스를 준비해주세요. 깃허브를 가장 추천드립니다. 내가 깃허브를 잘 못다룬다! 싶으시면 ctrl+c, crtl+v 를 가장 추천합니다... https://github.com/hyeg0121/2WeeksStudy_JavaScript GitHub - hyeg0121/2WeeksStudy_JavaScript: 2동안 자바 스크립트의 함수와 이벤트, 객체를 공부하여 데이터 2동안 자바 스크립트의 함수와 이벤트, 객체를 공부하여 데이터 양 계산 웹페이지 만들기. Con..
[JavaScript] DOM 객체로 HTML 요소의 속성 바꾸기
·
Programming Language/JavaScript
안녕하세요!! 오늘은 체크박스나 셀렉트 등 다양한 HTML 폼 요소에 접근하여 속성을 바꾸는 방법에 대해 알아보도록 하겠습니다! 실습 준비 실습 전 다음 소스를 복사 붙여넣기 하여 HTML 파일과 JS 파일을 준비 해주세요! (두 개의 파일은 편의상 같은 디렉토리에 위치시켜 주세요) demo.html 이메일 주소 : == 이메일 선택 == naver.com gmail.com hanmail.net HTML 파일을 실행시키면 위와 같은 폼들이 보일 것입니다. 각각 코드로 구현된 부분은 다음과 같습니다. label : 텍스트 (이메일 주소 :) input type="text" : 텍스트 입력 필드 select : 콤보박스 option : 콤보박스의 옵션 input type="checkbox" : 체크박스 다음..
[JavaScript] DOM 객체와 이벤트 처리
·
Programming Language/JavaScript
안녕하세요! 4번째 과제에서는 이번 시즌에 가장 중요하다고 볼 수 있는 DOM객체와 이벤트 처리에 대해 알아보도록 하겠습니다 DOM이란? DOM 이란 Document Object Model의 약자입니다. 번역하자면 문서 객체 모델인데요. 여기서의 문서는 HTML 문서를 말한다고 이해하시면 됩니다. document 위와 같은 HTML문서를 실행하고 개발자 모드에 들어가면 콘솔에 document가 출력되고, 펼쳤을 때 웹 문서의 소스를 볼 수 있습니다. 이를 통해 document는 웹 문서 자체를 가리키는 DOM요소 중 하나라는 것을 알 수 있습니다. document가 웹 문서 자체를 가리키기 때문에 수정 또한 가능합니다. document.write()를 활용해 문서를 수정해 보겠습니다. body 에는 h2..
[JavaScript] 이벤트와 이벤트 처리기
·
Programming Language/JavaScript
이벤트란? 이벤트란 키보드에서 키를 누르는 것이나, 브라우저가 웹 페이지를 불러오는 것처럼 사용자가 행하는 동작을 이벤트라고 합니다. 하지만 이벤트는 웹 문서 영역 안에서 이루어지는 동작들만을 말하는 것이니 이 점 유의하시길 바랍니다. 마우스 이벤트 먼저 마우스를 동작하였을 때의 이벤트를 살펴보도록 하겠습니다. click : 사용자가 HTML 요소를 클릭할 때 이벤트가 발생합니다 dbclick : 사용자가 HTML 요소를 더블클릭 했을 때 이벤트가 발생합니다 mouseover : 마우스 포인터가 요소 위에 옮겨질 때 이벤트가 발생합니다 mouseout : 마우스 포인터가 요소를 벗어날 때 이벤트가 발생합니다 폼 이벤트 Form 은 로그인창이나 검색창처럼 정보를 입력하는 요소들을 말합니다. 폼 요소에 내용..
[JavaScript] 익명 함수, 즉시 실행 함수, 다양한 함수의 표현법 알기
·
Programming Language/JavaScript
안녕하세요! 저번 함수 알아보기 게시물에 이어서 함수를 더 편리하고 간편하게 사용할 수 있는 방법들을 공부해 보겠습니다. 익명함수 익명함수는 말 그대로 이름이 없는 함수입니다. 전 게시글의 함수들은 모두 함수명을 표기하였습니다. 하지만 익명 함수는 이름 없이 선언할 수 있습니다. function(a, b){ return a + b; } 여기서 잠깐! 익명 함수는 이름이 없는데 어떻게 호출하고 실행할까요?? 익명함수는 함수 자체가 표현식이기 때문에 함수를 변수에 대입하거나 다른 함수의 매개변수로 사용할 수 있습니다. 말이 좀 어렵지만 다음 코드를 보면서 차근차근 이해해 봅시다. var sum = function(a, b){ return a + b; } console.log(sum(10, 5)); 실행결과 ..
[JavaScript] 자바 스크립트의 함수 알기
·
Programming Language/JavaScript
안녕하세요! 첫 번째 과제에서는 자바 스크립트의 함수에 대해 공부하고자 합니다 ✏️ 함수란? 먼저 자바스크립트에서 함수란 하나의 동작을 하기 위한 코드 덩어리라고 설명할 수 있습니다. 함수를 정의하면 코드를 간결하게 사용할 수 있을뿐더러, 명령의 목적을 확실하게 구분할 수 있어 편리합니다. 함수를 사용하는 방법은 다음과 같습니다. 함수를 만들 때 이름을 붙이고 필요할 때 함수의 이름을 사용해 실행 1번과 2번을 각각 함수를 선언한다, 함수를 호출한다고 합니다. 함수의 기본형은 다음과 같습니다. function 함수명() { 명령 } 다음 코드를 보면서 함수를 선언하고 호출하는 방법을 알아봅시다. 실행결과 >> 11 addNumber() 함수를 정의하였습니다. addNumber() 함수는 3+8의 결과를 ..
[JAVA] 패키지와 접근제어자
·
Programming Language/Java
패키지 선언 패키지의 물리적인 형태는 파일 시스템 폴더 패키지는 클래스의 일부분, 클래스를 유일하게 만드는 식별자 역할 클래스의 전체 이름은 패키지 이름 + 클래스 이름 package 상위패키지.하위패키지; 패키지 이름 작성 규칙 숫자로 시작해선 안되고 _, $를 제외한 특수 문자를 사용해서는 안된다 java로 시작하는 패키지는 자바 표준API에서만 사용하므로 사용해서는 안된다 모두 소문자로 작성하는것이 관례 import 문 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있을 때 사용 import 상위패키지.하위패키지.클래스이름; import 상위패키지.하위패키지.*; 접근제한자 클래스 및 인터페이스 그리고 이들이 가진 멤버의 접근을 제한 public : 외부 클래스가 자유롭게 사용할 ..