function solution(arr) {
// 배열에서 가장 작은 수를 찾기 위한 변수를 초기화합니다.
let minValue = arr[0]; // 처음 요소를 가장 작은 값으로 설정합니다.
// 배열을 순회하면서 가장 작은 값을 찾습니다.
for (let i = 1; i < arr.length; i++) {
if (arr[i] < minValue) {
minValue = arr[i]; // 더 작은 값을 찾으면 minValue를 업데이트합니다.
}
}
// 가장 작은 값을 제외한 새로운 배열을 만들기 위한 빈 배열을 생성합니다.
let answer = [];
// 배열을 다시 순회하여 가장 작은 값을 제외한 요소를 answer 배열에 추가합니다.
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== minValue) {
answer.push(arr[i]); // 가장 작은 값을 제외한 요소를 추가합니다.
}
}
// 만약 answer 배열이 비어있다면 [-1]을 반환하고, 그렇지 않으면 answer를 반환합니다.
if (answer.length === 0) {
return [-1];
} else {
return answer;
}
}
스탠다드반 과제 자료조사
전송 계층 (Transport Layer)
전송 계층은 OSI 7 계층 모델에서 네 번째 계층으로, 데이터 송수신의 신뢰성과 효율성을 보장하는 역할을 합니다. 네트워크 계층에서 받은 데이터를 상위 계층인 세션 계층으로 전달하거나, 세션 계층으로부터 받은 데이터를 네트워크 계층으로 전달합니다. 전송 계층은 호스트 간의 데이터 전송을 관리하며, 네트워크 간의 데이터 통신을 제어하는 핵심적인 계층입니다.
주요 기능
- 데이터 전달의 신뢰성 보장
- 데이터가 손실되거나 중복되거나 순서가 뒤바뀌지 않도록 제어합니다.
- 데이터 전송 중 문제가 발생할 경우 재전송 메커니즘을 제공합니다.
- 프로세스 간 통신
- 전송 계층은 송신 측과 수신 측의 특정 애플리케이션(프로세스)을 연결합니다.
- 이를 위해 포트 번호를 사용하며, 이를 통해 데이터가 올바른 애플리케이션으로 전달됩니다.
- 데이터 분할 및 재조립
- 데이터를 작은 단위로 나누어 전송하고, 수신 측에서 이를 다시 조립하여 원래의 데이터로 복구합니다.
- 흐름 제어 (Flow Control)
- 송신 측이 너무 빠르게 데이터를 전송하지 않도록 속도를 조정하여 수신 측이 처리할 수 있도록 보장합니다.
- 혼잡 제어 (Congestion Control)
- 네트워크의 혼잡 상태를 감지하고, 네트워크 성능을 저하시키지 않도록 전송 속도를 조정합니다.
- 오류 제어 (Error Control)
- 데이터 손실이나 손상이 발생했을 경우, 이를 감지하고 수정하기 위한 메커니즘을 제공합니다.
주요 프로토콜
전송 계층에서 사용되는 주요 프로토콜은 다음과 같습니다:
- TCP (Transmission Control Protocol)
- 연결 지향형 프로토콜로, 신뢰성을 보장하며 데이터 전달 순서를 유지합니다.
- 주로 이메일, 파일 전송, 웹 브라우징과 같은 애플리케이션에서 사용됩니다.
- 연결 설정(3-way handshake)과 연결 종료(4-way handshake)
- 흐름 제어와 혼잡 제어
- 오류 제어 및 재전송
- UDP (User Datagram Protocol)
- 비연결형 프로토콜로, 빠르고 간단한 데이터 전송을 제공합니다.
- 실시간 스트리밍, VoIP, 온라인 게임 등 시간 지연이 민감한 애플리케이션에서 사용됩니다.
- 낮은 지연 시간(Latency)
- 신뢰성 미보장 (패킷 손실이나 순서 보장 없음)
- 오류 검출 기능은 제공하지만 수정은 제공하지 않음
전송 계층의 역할을 이해하기 위한 예
- 웹 브라우저 (HTTP)
브라우저에서 웹 페이지를 요청하면 HTTP는 TCP를 사용하여 데이터를 안전하게 전송합니다. - 온라인 게임
UDP는 빠른 응답 속도가 중요한 환경에서 데이터 전송에 사용됩니다. 패킷 손실이 발생하더라도 재전송을 기다리지 않고 데이터를 계속 전송합니다.
전송 계층의 장점
- 데이터 전송의 신뢰성과 효율성 보장
- 포트 번호를 이용한 다중 애플리케이션 처리 가능
- 네트워크 문제를 상위 계층으로부터 추상화하여 복잡성 감소
전송 계층의 한계
- TCP는 신뢰성 보장을 위해 추가적인 오버헤드 발생
- UDP는 신뢰성을 제공하지 않으므로 일부 애플리케이션에서는 데이터 손실 가능성 존재
전송 계층은 네트워크 통신에서 매우 중요한 계층으로, 데이터의 안정적인 전송을 가능하게 합니다. TCP와 UDP의 차이를 잘 이해하고, 각 프로토콜이 적합한 상황을 선택하는 것이 중요합니다.
<뉴스피드 프로젝트>
https://www.notion.so/teamsparta/81a42ca253c84b41bc65f53b83a2eed2
육사시미 | Notion
4. 와이어프레임
teamsparta.notion.site
팀별노션 작성 후
회원가입인증 로그인, 이메일 인증, 네이버 연동
참고할 사이트
[javascript]네이버 로그인 javascript로 구현하기
요즘 SNS로그인은 대부분 서비스에 이용되어지고 있다. 오늘은 그중에 네이버 로그인 구축 방법을 공부하면서 하는 방법들을 정리해보려고 한다. 네이버 로그인 흐름도 1.NAVER Developers 에 어플리
thecorative.tistory.com
https://developers.naver.com/docs/login/devguide/devguide.md
네이버 로그인 개발가이드 - LOGIN
네이버 로그인 개발가이드 1. 개요 4,200만 네이버 회원을 여러분의 사용자로! 네이버 회원이라면, 여러분의 사이트를 간편하게 이용할 수 있습니다. 전 국민 모두가 가지고 있는 네이버 아이디
developers.naver.com
회원가입과 로그인을 다시 맡은 이상 그전보다는 더 발전된 모습을 보이도록 노력해야겠습니다! 파이팅!