분류 전체보기 259

[Network] Layer와 Layered Architecture

네트워크에서 많은 사용자가 데이터를 동시에 전송하기 때문에 원활한 데이터 전송을 위해 체계적인 전략이 필요하다. 효율적으로 데이터를 송수신할 수 있도록 다양한 전략을 세우는데, 그 중 하나가 Layered Architecture(계층형 아키텍처)이다. Layer 관련 통신 기능을 서로 다른 계층 집합으로 그룹화한 것을 Layer(계층)라고 한다. - 기능 통신에 필요한 다양한 기능의 하위 집합을 수행한다. 계층의 다음 상위 계층에 해당 기능의 서비스를 제공한다. 다른 시스템의 피어 계층과의 통신 프로토콜을 구현한다. 작업을 구현한 후에는 다음 계층에 의존하여 추가 기능을 수행한다. Layered Architecture - 기본 구성 요소 Service : 계층에서 상위 계층으로 제공하는 함수 모음. 인터..

Network 2023.08.07

[JPA] Repository 인터페이스

Spring Data Repository Abstraction에서의 핵심 인터페이스는 Repository이다. 이는 도메인 클래스와 도메인의 id 타입을 인자로 받는다. 주로 마커 인터페이스(Marker Interface)로 동작한다. CRUDRepository CRUDRepository는 엔티티 클래스에서 복잡한 CRUD 기능을 제공한다. public interface CrudRepository extends Repository { S save(S entity); T findOne(ID primaryKey); Iterable findAll(); Long count(); void delete(T entity); boolean exists(ID primaryKey); // … more functionali..

[Linux] /etc/hosts 파일

hosts 파일 컴퓨터가 도메인의 IP를 찾을 때 컴퓨터가 가장 먼저 조사하는 파일로, Linux에서 DNS보다 먼저 hostname을 IP로 찾아준다. DNS 매핑 과정 IP 주소로 접속하기란 번잡하므로 사람이 외우기 쉬운 주소로 도메인을 사용한다. tistory.com을 예로 들겠다. tistory.com을 입력했을 때 브라우저는 DNS 서버에 접속하여 tistory.com의 IP 주소를 찾는데, DNS 서버가 해당 IP를 알려주면 이에 접속해서 사이트를 띄운다. 이때, tistory.com을 입력했을 때 컴퓨터가 DNS 서버에 hosts 파일을 먼저 조사한 후 IP 주소를 찾는다. hosts 파일에서 해당 IP 주소를 찾는다면 DNS 서버는 더이상 그 도메인에 대해 묻지 않는다. hosts 파일 구..

OS/Linux 2023.07.29

[jBoss] 웹에 파일이 제대로 반영되지 않음

문제 상황 개발 1번 서버와 2번 서버가 있는데, 2번 서버는 1번 서버를 가져다 파일을 부운 상태였다. 두 서버 모두 같은 UI 파일을 패치하고 jBoss를 재기동했다. 1번 서버는 제대로 반영이 되었으나, 2번 서버에서 스크립트 에러가 뜨며 일부가 반영되지 않았다. 혹시나 하여 캐시를 삭제하고 강력 새로고침을 하였음에도 아무런 변화가 없었다. 원인 1. 패치된 UI 디렉토리를 jBoss가 새로 컴파일하지 못해 에러가 발생하였다. 2. 1번 서버의 기존 UI 파일을 2번 서버로 붓는 과정에서 파일 크기가 깨졌다. 해결 원인 1) 패치된 UI 디렉토리를 jBoss가 새로 컴파일하지 못해 에러가 발생하였다. -> jBoss의 domain 디렉토리 내 data, tmp 디렉토리를 삭제한 후 kill.sh을 ..

WAS/jBoss 2023.07.29

[Linux] CentOS7 ssh 설치 및 접속

ssh 설치 유무 확인 # rpm -qa | grep ssh* 나는 ssh가 설치되어 있었다. ssh 설치 # yum install [설치할 openssh 패키지] 혹시 몰라 다시 openssh-server를 다시 설치하였다. 만일, 서버가 설치되어 있지 않다면 openssh-server*를 설치하고, 클라이언트가 설치되어 있지 않다면 openssh-clients*를 설치하면 된다. ssh 설정파일 편집 # vi /etc/ssh/sshd_config PermitRootLogin : root 계정으로의 로그인 허용 여부를 설정한다. yes는 허용, no는 차단하는 것이다. 나는 테스트를 위한 것이므로 root 계정으로의 로그인을 허용하였다. ssh 자동실행 등록 및 시작, 상태 확인 -- ssh 자동실행 ..

OS/Linux 2023.07.23

[Linux] yum으로 java 설치

처음에 CentOS를 깔고 터미널에서 명령어 java -version 또는 which java를 입력했을 때 아무 것도 안뜰 수 있다. 그럴 때 java를 설치해주어야 하는데, 먼저 jdk-devel 패키지가 깔려있는지 확인해야 한다. jdk가 깔려있어도 jdk-devel이 없으면 안된다. jdk 설치 유무 확인 # yum list installed *jdk-devel 위 명령어를 입력했을 때 'Error: No matching Packages to list' 라는 문구가 출력된다면 jdk-devel 패키지를 설치해야 한다. 설치 가능한 jdk 확인 # yum list java*jdk-devel jdk 설치 # yum install [설치할 jdk-devel 패키지] 나는 java-1.8.0-openjd..

OS/Linux 2023.07.23

[Java] 빌드(Build)와 컴파일(Compile), 런타임(Runtime)

빌드(Build) 빌드는 소스코드 파일(.java)을 class 파일로 변환한 후 실행파일로 만드는 과정을 말한다. 빌드 안에 컴파일이 포함되어 있다. 이때 빌드를 도와주는 도구를 빌드 툴(Build Tool)이라고 한다. *빌드 툴이 제공하는 기능 - 전처리(Preprocessing), 컴파일(Compile), 패키징(Packaging), 테스팅(Testing), 배포(Distribution) *빌드 툴의 예 - Ant, Maven, Gradle 컴파일(Compile) 컴파일이란 개발자가 작성한 소스코드를 기계어(Byte Code)로 변환하는 과정을 말한다. 런타임(Runtime) 런타임이란 컴파일 과정을 끝낸 프로그램이 실행 및 동작하는 과정을 말한다.

[Spring/Error] The origin server did not find a current representation for the target resource or is not willing to disclose that one exists.

해당 에러는 톰캣에서 프로젝트 경로를 제대로 인식하지 못해서 발생한다. 이 경우, 경로를 올바르게 잡아주면 해결된다. 1. Server 탭에 있는 Tomcat을 더블클릭해서 Modules를 연 후 Edit를 통해 Path를 원하는 경로로 수정한다. 예를 들어, Path를 '/'로 변경하거나 '/job'으로 변경한다. 2. 경로를 잡아줄 프로젝트를 우클릭하고 Properties를 클릭한다. 3. Web Project Settings 클릭 후 Context root를 1번에서 수정한 Path 경로로 작성한다. 예를 들어, 1번에서 '/'로 수정했으면 Context root도 '/'로 설정한다. 4. OK 버튼 클릭하고 톰캣 재기동하면 정상적으로 실행된다. Rename context root from "A" ..

IDE/Spring 2023.06.23

[Java/Error] Broken Pipe 파이프가 깨어짐

java.io.IOException: Broken pipe 해당 오류는 크게 세 가지 원인으로 발생한다. 1. Receiver에서 송신받은 데이터를 제때 처리하지 못하는데도 Sender가 계속 데이터를 보내는 경우에 발생한다. 예를 들어 네트워크 속도가 느리다거나 CPU가 MAX 상태인 경우가 이에 해당된다. 2. 두 개의 소켓이 통신하다가 소켓을 담당하던 프로세서가 비정상적으로 종료된 경우, 상대 소켓이 이를 알지 못하고 데이터를 전송할 때 발생한다. 3. 클라이언트의 요청 이후 서버에서 작업을 완료하여 클라이언트로 결과를 전달해주기 전에 1) 네트워크가 끊기거나 2) 클라이언트가 정지버튼을 누르거나 3) 브라우저가 종료되거나 4) 다른 화면으로 이동하여서 위와 같은 최초 요청에 대한 정보가 사라지는 ..