반응형

분류 전체보기 408

[개발관련] 공인IP로 어떻게 사설 네트워크 안의 특정 서버에 요청하는지 - 포트포워딩

공인IP의 특정 port 요청을 사설 네트워크 안의 특정 호스트(사설IP) 로 향하게 하는 것이 포트포워딩이다. 공인 IP를 사용하는 공유기 등에서 포트포워딩을 설정하면 외부에서 내부망(사설 네트워크 등) 의 특정 호스트(서버)에 접근이 가능하다. 라우터에서 포트 포워딩을 설정하는 방법 (이미지 포함) - wikiHow 이 위키하우 글을 읽고 라우터의 특정한 포트를 열어서 애플리케이션이 네트워크에 접근할 수 있도록 해보자. 특정한 포트를 열면 게임, 서버, BitTorrent 클라이언트, 다른 애플리케이션이 포트 ko.wikihow.com

개발/개발관련 2023.08.10

[개발관련] 정렬 프로그램

https://github.com/mbk1991/Algorithm_DataStructure/tree/master/Algorithm_DataStructure%2Fsrc%2Fmain%2Fjava%2FAlgorithm%2Fsort 정렬 알고리즘을 공부 중 알고리즘과 배열 생성 방법을 선택하여 정렬하는 프로그램을 만들어보았다. 여러가지 정렬 알고리즘을 공부하는 김에 객체 지향적으로 만들어보고자 하였다. 개선할 점이 아주 많은 코드이다. 정렬 알고리즘들이 잘 동작하지만 우선 속도가 끔찍하게 느리다. 많은 이유가 있겠지만 불필요한 비교 및 오토박싱 등으로 과도한 객체 생성을 하고 있는 것으로 보인다. 성능 개선을 위하여 기본 타입을 사용하는 등 여러모로 개선이 많이 필요하다. 자바 기본기와 이펙티브 자바 서적을 읽..

개발/개발관련 2023.08.04

[개발관련] No Test Roots Found

JUnit 테스트 코드를 생성하고자 하는 클래스에 Alt + Enter로 Create Test를 누르자 위와 같은 팝업이 나타났다. Test 루트를 인식하지 못해 발생한 문제였다.build.gradle에 소스디렉터리에 대한 설정을 넣은 것과 관련이 있어 이를 수정해 보았다. test의 srcDirs 가 'test'인 것을 'src/test/java'로 변경하였다. (사실 sourceSets 설정을 하지 않으면 해결된다. Gradle에서는 기본적으로 인식하는 프로젝트 레이아웃이 정해져 있기 때문이다.. src/main/java, src/test/java... 등) build.gradle sourceSets { main { java { srcDirs = ['src/main/java'] } } test { j..

개발/개발관련 2023.08.03

[개발관련] Package name 'main.java.Algorithm. ... ' does not correspond to the file path 'Algorithm. ...'

Gradle 프로젝트로 전환 후 인코딩 및 소스 디렉터리 변경에 의한 Package 선언 문제가 발생하였다. Package name 'main.java.Algorithm. ... ' does not correspond to the file path 'Algorithm....' 정렬 알고리즘 공부 차원에서 코딩 중 테스트 코드나 써볼까 하고 JUnit 라이브러리를 추가하고자 하였다. 빌드 도구로 의존을 추가하는 것이 간편하다고 생각하여 build.gradle 파일을 추가하여 Gradle 프로젝트로 변경하였더니 제목과 같은 문제가 발생하였다. Gradle 프로젝트 변경 후 인코딩 관련 다른 문제도 발생하였었는데 다음과 같은 조치로 해결하였다. ------------------------------------..

개발/개발관련 2023.08.03

[개발관련] API(Application Programming Interface)에 대한 이해

다음 단어들이 잘 와닿지 않았었다. - Application - API ( Application Programming Interface) 애플리케이션을 스마트폰에서는 앱, 어플 등으로 표현한다. 보통 '앱 깔아서 쓰면 된다'라고 말을 하는데 이는 사용자가 필요로 하는 프로그램을 스마트폰에 설치한다는 의미이다. 앱(Application)은 사용자가 필요에 의해 설치하여 사용하는 프로그램이며 응용프로그램이라고 칭한다. 운영체제 위에서 사용자에게 특정 기능을 제공하는 모든 프로그램이 App이라고 이해해 보았다. Excel, 메모장, 그림판, 계산기, Tomcat, nginx, 브라우저 등등 운영체제 위에서 동작하는 운영체제가 아닌 프로그램을 모두 응용프로그램이라고 보는 것이다. 사람들은 보통 응용프로그램을 사..

개발/개발관련 2023.07.22

[HTTP] HTTP에 대한 이해

게시판 제작을 위한 API 설계 중 HTTP에 대해 이해해야 할 필요성을 느끼고 공부하였다. HTTP(Hypertext Transfer Protocol)는 프로토콜이다. 프로토콜은 통신 규약, 통신을 위한 약속이라고 이해할 수 있다. 그렇다면 HTTP는 누구와 누구의 약속일까? 일반적으로는 클라이언트와 서버의 약속이다. 요즘은 서버와 서버 간에도 HTTP를 이용하여 통신한다고 한다. 통신이라는 것은 결국 '정보(data)'를 주고받는 것이다. 클라이언트의 애플리케이션과 서버의 애플리케이션이 정보를 주고받기 위해 약속한 것이 HTTP이다. 즉, 애플리케이션(응용 프로그램) 간에 데이터를 주고받기 위한 통신규약이자 약속인 것이다. 한편, HTTP는 TCP/IP 4계층에서 애플리케이션 계층 프로토콜에 해당한다..

CS/웹 2023.07.22
반응형