전체 글
[NetWordk] Port에 대해 간략하게 알아보자
왼쪽 각각의 두개의 컴퓨터는 한 개의 서버에서 각각 다른 행동을 수행하고 있다. 첫 번째 컴퓨터는 웹 서버를 사용하고 있고 두 번째 컴퓨터는 이메일을 보내고 있다. 분명 하는 일을 다른데 같은 서버를 이용하고 있기 때문에 연결된 IP 주소는 같게 된다. 쉽게 말해 현대엔 IP프로토콜만 가지고는 한 IP에서 여러 애플리케이션이 동작할 때 특정 애플리케이션을 특정해 통신할 수 없다. 포트번호는 대상 IP 기기의 특정 어플리케이션(connection endpoint)을 특정하는 번호이다. 포트 번호는 0~ 65,535 까지 사용할 수 있다. 그중에서 0 ~ 1023번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다. # 자주 사용되는 Port 번호
[NetWork] TCP vs UDP에 대해 알아보자
# TCP/IP 4계층 모델 네트워크의 TCP/IP 4계층에 대해서 많이 들어봤을 것이라 생각한다. 기억해야 할 핵심적인 주요 프로토콜에는 응용계층의 HTTP, 전송계층의 TCP UDP, 인터넷 계층의 IP가 있다. 전송계층에 속하는 TCP와 UDP는 2계층에서 동작하는 IP 와 4계층에서 동작하는 애플리케이션(http 등)을 중개하는 역할을 합니다. TCP와 UDP는 중개하는 역할을 하는점에서는 동일하지만, 각각이 다른 아래와 같은 특징을 가지고 있습니다. TCP는 통신 신뢰성을 높이는 실현하는 기능이 구현되어 있다. 반대로 UDP에는 신뢰성을 높이는 기능이 없는 대신 보다 높은 속도와 효율성을 제공합니다. 이러한 이유로, 데이터의 신뢰성을 필요로하는 애플리케이션은 TCP로, 빠른 속도나 실시간 통신이..
[NetWork] IP에 대해 파악해보자
IP 주소는 TCP/IP 구조에서 컴퓨터를 식별하기 위해 사용되는 주소입니다. 192.xxx.xxx.xxx등의 주소를 본적이 있을 것 입니다. 컴퓨터나 휴대전화, 서버, 인터넷 라우터 등 네트워크 장비에 각각의 IP 주소가 할당되게 됩니다. IP 주소에는 private 주소와 public 주소가 있습니다. LAN 네트워크 내부에서 사용되는 것이 Private IP 주소이고, Public IP주소는 인터넷에서 사용이 됩니다. IP는 Internet Protocol의 줄임 말로, 인터넷상에서 사용하는 주소체계를 의미합니다. 인터넷에 연결된 모든 PC는 IP 주소체계를 따라 네 덩이의 숫자로 구분됩니다. 이렇게 네 덩이의 숫자로 구분된 IP 주소체계를 IPv4라고 합니다. IPv4는 Internet Proto..
[프로그래머스] 피로도-JAVA
[문제 설명] XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘 이 던..
[JPA ERROR] Entity 필드에 예약어 사용 에러(Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "\000d\000a)
@Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Email { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long emailId; @Column(nullable = false) private String code; @Column(nullable = false) private String name; @Column(nullable = false) private String password; @Column(nullable = false) private String email; private String career; @Column(nullable = f..
[JPA ERROR] Entity Patch(수정)하는 과정 오류
문제가 되는 부분은 main Entity인 teacher Entity의 일부를 patch api로 수정하는 과정에서 발생하였습니다. 다른 부분은 모두 수정이 원활하게 이루어 졌는데 teacher과 jpa mapping 된 skillTable이라는 Entity가 teacher Entity를 save를 통해 저장해도 함께 저장이 안되는 상황입니다. @Entity @Setter @Getter @NoArgsConstructor @AllArgsConstructor public class Teacher { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long teacherId; @Column private String name; @Column p..
[Spring Boot] mysql 환경 설정 오류 Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" already exists; SQL statement:
어느날 프로젝트를 돌려봤는데 다음과 같은 에러가 발생했습니다. Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "MEMBER" already exists; SQL statement: Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Cannot drop "MEMBER" because "SH7DBRE3E7FS2" depends on images; 위 에러에서 나오는 "MEMBER" 와 "images"는 JPA one to one 매핑한 엔티티들이었고 결과적으로 프로젝트 실행시 만들어졌던 MEMBER 테이블을 DROP 할 수 없다는 메시지를 메시지였습니다. spring boot의 application.yml 또..
[AWS Error] com.amazonaws.SdkClientException: Failed to connect to service endpoint(Caused by: java.net.SocketException: Network is unreachable: connect)
해당 오류는 AWS Ec2 인스턴스 서버 환경이 아닌 로컬 환경에서 AWS 정보들을 활용했을 때 나타나는 error이다. 해당 오류가 발생하더라도 로컬 환경에서 프로젝트를 실행하는 것에는 문제가 없지만 눈에 너무 거슬리기 때문에 없애보도록 하자 해당 부분을 추가하면 에러 메시지가 사라질 것이다.