분류 전체보기
-
앱 서버로 API 를 호출 하면 몇번의 데이터 통신이 발생하나요 ? TCP/IP 원리 (2)CS-Theory/NetWork 2023. 7. 25. 15:22
만약 다음 질문이 들어오면 정답이 무엇일까? Q : 안드로이드에서 서버로 api 를 호출 하면 몇번의 데이터 통신이 발생하나요 ? TCP 원리 (1) 글에서는 TCP/IP 원리 설명중 데이터가 구체적으로 어떻게 해서 다른 컴퓨터에게 전달이 되며 패킷생성의 두가지 방식 및 패킷 스위칭의 과정을 설명했다. 이번 글에서는 Tcp 의 데이터의 신뢰성을 어떻게 보장을 하는지에 대한 설명이다. 우리는 앞서 IP 는 비 연결성 데이터그램 패킷 스위칭을 기반으로 작동한다라는 내용을 알았다. 데이터그램 패킷 스위칭은 각각의 패킷이 독립적으로 처리되므로 중간에 패킷이 손실되거나 순서가 바뀐다. 트렌스포트 계층에서 TCP 방식을 사용하여 안정적인 통신을 가능하게 한다. 가상 회선 패킷 교환 방식 데이터그램 패킷 교환 방식과..
-
TCP 가 뭔가요? TCP/IP 원리 (1)CS-Theory/NetWork 2023. 7. 25. 14:46
TCP 원리의 대한 설명을 위한 글이다. TCP 원리(1) 에서는 TCP 의 정의 , TCP/IP 모델 , 전반적인 데이터 전달 방식 의 내용을 설명한다. 장문의 글이다. 글을 읽기전 라우터, 허브,공유기의 차이를 모르거나 본이니 타인에거 명확하게 설명이 불가하다면 꼭 다음글을 먼저 읽고 와 주면 좋겠다. https://chosunghyun18.tistory.com/129 허브 , 스위치, 라우터 , 공유기의 차이 허브 , 스위치, 라우터 , 공유기는 컴퓨터 네트워크에서 각각 다른 기능을 한다. - 허브 : 데이터를 받은 포트를 제외한 나머지 모든 포트로 데이틀 브로드캐스트 한다. 소규모 네트워크를 구성시 chosunghyun18.tistory.com 1. TCP 의 정의 TCP/IP 는 Transmis..
-
허브 , 스위치, 라우터 , 공유기의 차이 TCP/IP 원리 (0)CS-Theory/NetWork 2023. 7. 25. 14:16
허브 , 스위치, 라우터 , 공유기는 컴퓨터 네트워크에서 각각 다른 기능을 한다. - 허브 : 데이터를 받은 포트를 제외한 나머지 모든 포트로 데이터를 브로드캐스트 한다. 소규모 네트워크를 구성시 이용 할 수 있다. 만약 특정 컴퓨터에서 특정 컴퓨터로 연결을 요청시 연결된 컴퓨터를 개별로 인식하지 못하고 모든 컴퓨터에 연결 요청을 보낸다. 이러한 특징으로 여러 장치가 동시에 데이터를 전송하면 충돌이 발생할 문제가 있어 현대 네트워크에서 거의 사용 되지 않는다. - 스위치 : 허브의 문제를 스위칭 테이블을 사용하여 해결한다. 네트워크에 연결된 모든 컴퓨터를 인식하고 요청 대상에 맞는 컴퓨터에게만 연결 요청을 보낸다. (스위치는 컴퓨터의 고유한 번호인 맥 주소를 수집해 스위칭 테이블을 만들고 해당 포트에 연..
-
yml 환경 변수 설정Project/TravelFeelDog 2023. 7. 18. 16:39
공개된 장소 인 퍼블릭 깃허브에는 데이터 베이스의 정보나 aws 키를 유출하면 안된다. 이러한 사유로 .gitIgnore 를 사용해서 application.yml 전부를 제외를 시켰다. 운영 측면에서 민감한 정보를 가지는 부분 즉 비공개용 정보보다는 공개가 가능한 부분이 많아 환경 변수를 이용하여 관리하고자 한다. .gitIgnore 에는 application-credentials.yml 파일만 설정 하고 나머지 yml 은 전부 공개를 해도 되는 환경으로 변경하고자 한다. 기본 사용부터 보자. 데이테이스의 이름을 변수로 바꾸는 방법이다. 1. graddle 에 다음과 같이 추가 해주자. implementation 'org.springframework.boot:spring-boot-configuration..
-
경로 에러 추가 하기Project/TravelFeelDog 2023. 7. 18. 15:32
프로젝트 중 경로를 잘못 입력했을때 500 에러가 나는 것을 확인 했다. api 를 설계하는데 있어 사용자에게 서버 로직에러인 500 에러를 알려주는것은 좋은 설계가 아니라고 한다. 이를 바꿔 보자. connection 을 확인하는 간단한 api의 코드이다. @RestController @RequestMapping("/test") @AllArgsConstructor public class ConnectionCheckApi { @GetMapping(value="/{test-number}") public ApiResponse getConnectTest(@PathVariable Long testNumber){ return ApiResponse.success(testNumber); } } 위와 같이 포스트맨을 ..
-
DS : Stack "baabaa"CodeingTestPrac/Java Coding Test 2023. 7. 14. 20:56
https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정확도를 푸는 것은 어렵지 않다. 그러나 다음과 같은 코드를 작성을 하는데 있어 디버깅을 사용함에도 효율적이지 못한 코드가 나온다. 1 차적으로 중복이 존재하는 지 탐색을 하는데 public int solution(String s) { int answer = 0 ; while (s.length() != 0 ) { int check = s.length(); if(s.length() == 1) ret..
-
AWS s3 이미지 업로더 분리기 (feat. @Configurration 활용)Project/TravelFeelDog 2023. 7. 14. 18:07
기존 코드의 설명을 하면 , 하단의 코드는 서비스 레이어이며 s3 이미지를 담당하는 모듈의 기능들이다. 퍼블릭 클라우드인 aws 의 객체 저장소인 s3 에 이미지 파일을 올리기 위하여 작성을 해온 코드이다. ... @Transactional(readOnly = true) @Service public class AwsS3ImageService { .. public String uploadImageOnly(MultipartFile file, String folderName) throws IOException { .. return amazonS3.getUrl(bucketName, key).toString(); } public List uploadImagesOnly(MultipartFile[] files, St..
-
프로그래머스 야근지수 자바 [14일차](효율성 문제)CodeingTestPrac/Java Coding Test 2023. 7. 9. 11:50
문제는 다음과 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 다음과 같은 코드는 효율성에서 통과를 하지 못했다. public long solution(int n, int[] works) { PriorityQueue pq = new PriorityQueue(Collections.reverseOrder());; for (int work : works) { pq.offer(work); } for(int i =0 ; i< n ;i++){ in..