본문 바로가기

분류 전체보기25

Network - IP Address (Internet Protocol Address) IP송신 호스트와 수신 호스트가 패킷교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약.OSI 네트워크 계층에서 호스트의 주소 지정과 패킷 분할 및 조립 기능 담당.패킷들을 가장 효율적인 방법으로 최종 목적지로 전송하기 위해 필요한 프로토콜패킷 전달 여부를 보장하지 않고, 순서 역시 보장하지 않음 IP Address컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 특수한 번호.서버가 들어가지 않으면, IP가 안전하지 않다고 한다.IPv4와 IPv6 두가지 체계가 있다. (2022 기준)IPv4 (IP version 4)가장 널리 사용되는 IP 주소.32bit의 값을 가지며, 보통 8bit씩 끊어 0~255의 10진수 수로 나타낸다. 각각의 숫자는 점(.)으로 구분한다.43억개.. 2024. 5. 2.
Network - TCP (Transmission Control Protocol) TCP패킷을 안전하게 전달해주는 전송 프로토콜. IP위에서 동작한다.데이터의 전달을 보장하고, 순서 또한 보장한다. 특징1) 신뢰성 : 데이터의 분실, 중복, 혹은 오류가 발생할 경우 재전송2) 연결 지향적 : 통신 시작 전 송수신자를 연결3) 흐름 제어 : 혼잡도를 감지하여 데이터 전송 속도를 조절해 통신을 보다 효율적으로 유지4) 순서 보장 : 데이터는 전송된 순서대로 도착 흐름 제어 : 송신측과 수신측의 데이터 처리 속도의 차이를 해결하기 위한 기법혼잡 제어 : 송신측의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결하기 위한 기법 TCP 동작 과정연결 설정 - 3 way handshake두 종단 간 정확한 데이터 전송을 보장하기 위해 연결을 설정하는 과정클라이언트에서 연결 생성을 위해 SY.. 2024. 5. 1.
Kotlin / Conditions and Loops (If, When, For, While) when문을 사용하다, 이런 문법도 되는걸까? 싶은 부분이 있어 Kotlin Docs를 살펴보게 되었다. 그 김에 해당 페이지를 번역하는 겸 개인 공부를 하는 시간을 조금 가졌다.사람은 모르면 역시, 공식 문서를 읽어봐야합니다. If코틀린에서, if 표현식은 : value를 반환한다. 그렇기 때문에, 삼항연산자(condition ? then : else) 가 없다. 왜냐하면, if로 충분히 해당 역할을 할 수 있기 때문이다. → if문과 else문이 직접 값을 반환.만약 사용하고 있다면, 당신은 java style의 코드를 작성하고 있는 것이다.var max = aif (a b) { max = a} else { max = b}// As expressionmax = if (a > b) a el.. 2024. 4. 30.
Kotlin / 숫자 야구 게임 숫자 야구 게임, 좋아하세요? 저는 야구라면 환장을 하는 나머지 게임으로도 만들어 보았습니다.요구사항프로그램 실행시 아래의 메뉴를 출력한다.환영합니다! 원하시는 번호를 입력해주세요1. 게임 시작하기 2. 게임 기록 보기 3. 종료하기1번 선택 -> 숫자 야구 게임을 실행합니다.2번 선택 -> 프로그램이 최초 실행된 이후의 게임 기록을 보여줍니다.3번 선택 -> 프로그램이 종료됩니다.1번 - 게임 시작하기게임 시작하기 기능을 실행하면, 숫자 야구 게임을 실행합니다.서로 다른 숫자 3개를 입력하면 힌트를 제공합니다.같은 자리에 같은 숫자가 있는 경우 스트라이크(S), 다른 자리에 숫자가 있는 경우 볼(B)입니다.3S가 나오면 게임을 종료합니다.입력한 숫자가 정답에 하나도 없다면 OUT을 나타냅니다.2번 - .. 2024. 4. 30.
[Git] Commit Message Convention 지난주 제출한 계산기 과제를 기반으로 피드백을 2가지 받았다. 2가지 피드백은 전부 git을 통한 협업과 관련된 피드백이었는데, 사실 제출하고 나서 git convention 등에 대한 설명을 들어서 이런 피드백이 올 것이라곤 예상했었다!이 기회를 살려 앞으로 어떤식으로 작성해볼지에 대해 공부하고 정의하는 시간을 가질 수 있을 것 같다. 1. 깃 커밋 컨벤션, 왜 사용할까?커밋 컨벤션을 지정해서 사용하는 이유는 다양하지만, 크게 2가지를 꼽자면 아래의 2개라고 생각한다.1. 가독성 및 커뮤니케이션 효율성 제고일관된 형태의 커밋 메시지는 가독성이 높다. 그렇기 때문에 다른 개발자의 작업 내역 및 변경 사항들을 쉽게 파악가능하다. 2. 변경 이력 추적 및 문제 해결 속도 향상일관된 커밋 메시지를 통해 소스 .. 2024. 4. 29.
Kotlin / 고차함수와 람다 Lambda lambda 와 익명 함수는 함수 리터럴(function literals)이라고도 불린다.함수 리터럴은 선언되지 않고 표현 그대로 바로 전달될 수 있다. ( 함수 리터럴은 선언되지 않았지만 즉시 표현식으로 전달됨)max(strings, { a, b -> a.length 함수의 마지막 매개 변수가 함수라면 괄호 밖으로 람다 식을 배치할 수 있다.만약 함수의 매개 변수가 하나라면 괄호 내에서 it 으로 표현된다.val listOne = listOf(1, 2, 3).map({it + 1}) // 원래는 이렇지만val listTwo = listOf(1, 2, 3).map { it + 1 } // 이렇게 쓸 수도 있다.리턴 값이 있어야 하는 함수 리터럴은, 마지막 줄이 리턴 값이 된다. 혹은 qual.. 2024. 4. 25.
Kotlin / 고차함수 포스트 작성 계기과제를 진행하다, 함수 안에서 함수를 부르는데 그 부르는 함수 내에서 또 함수를 부르는 기이한 형태도 처리되는 것을 확인했다. 충격과 함께 왜.,.. 이게 되는거지? 를 확인하려고 공부를 시작했다. 목표는 고차함수 개념 알기!!!고차함수를 보려면 그 이전에 1급함수를 알아야했다.1급함수,  1급 시민, 1급 객체.. 뭔 비슷한 말들이 너무 많다. 하지만 각각 영어 명칭이 다 따로 있기 때문에 다른점이 있다고 판단. 하나하나 뜯어보기로 한다. 1 / 1급 시민(first-class citizen), 1급 객체(first-class object), 그리고 1급 함수(first-class function)1급 시민 -> { 변수에 담을 수 있음 + 함수의 인자로 전달 가능 + 함수의.. 2024. 4. 24.
[Git] .gitignore 사용법 이 포스트를 쓰게 된 가장 큰 이유... 프로젝트 파일 전체 중 소스코드와 관련된 부분만 깃에 업로드하고싶다! 라는 이유 때문에, gitignore파일에 이것저것 추가하다 여러 문제(?)가 생겨 작성하게 되었다. 일단, git을 쓸줄은 알지만 완전 미숙한 상태고 앞으로 큰 프로젝트를 진행하기 전 보다 지금 개인 과제를 진행하거나, 아주 작은 프로젝트를 관리할때 미리 활용해보는 듯 미리 깃과 더 친해져야겠다 생각했다. 그럼 본론으로 바로 GO, 1/ .gitignore란? .gitignore 파일은 프로젝트 전체 중에서 깃에 올리고 싶지 않은 부분을 지정할 수 있게 해주는 중요한 도구다. 이를 통해 사용자는 다른 사람들에게 보여주고 싶지 않거나 보안상 문제가 될 수 있는 파일들을 깃의 버전 관리에서 제외시.. 2024. 4. 23.
Kotlin / 계산기 만들기 TODO1단계 / 덧셈, 뺄셈, 곱셈, 나눗셈 기능을 수행할 수 있는 Calculator 클래스 만들기. 2단계 / 위에서 작성한 Calculator 클래스에 나머지 연산 추가하기.3단계 / Add, Substract, Muliply, Divide 클래스 구현 후, Calculator 클래스와 관계 맺기(상속)4단계 / AbstractOperation 클래스 명으로 만들어 사용하여 추상화하고 Calculator 클래스의 내부 코드 변경  강의 듣고 내 입맛대로 코드 짜기 시작... 훗.. 1단계 + 2단계우선 기본 계산기 클래스 만들기Class Calculator{ val num1 :Double val num2 :Double fun add(num1:Doub.. 2024. 4. 22.
미니 프로젝트 - 팀 소개 웹페이지 개발 후기 및 코드 프로젝트 관련 링크 1일차 : 2024.04.16 - [PROJECT/미니 프로젝트 (24.04.16~24.04.19)] - 미니 프로젝트 - 팀 소개 웹페이지 개발 (1) 2일차 : 2024.04.17 - [PROJECT/미니 프로젝트 (24.04.16~24.04.19)] - 미니 프로젝트 - 팀 소개 웹페이지 개발 (2) 3일차 : 2024.04.18 - [PROJECT/미니 프로젝트 (24.04.16~24.04.19)] - 미니 프로젝트 - 팀 소개 웹페이지 개발 (3) 프로젝트의 진행은 아래의 순서로 진행된 것 같다. 1. 페이지 디자인 아이디어. 2. html로 구조잡기. 3. css로 꾸미기. 4. js로 동작 시키기! + firebase의 연결. 읽기전 알아둘 것. 보안과 관련된 부분은 전혀.. 2024. 4. 21.
미니 프로젝트 - 팀 소개 웹페이지 개발 (3) 이전 진행도 : 미니프로젝트(2) 글을 다듬는 것은 추후에 시간을 들여서 할 것. 일단 기록해두는 것에 초점을 두기로 했다. TODAY GOAL 어제 받은 피드백들을 처리하고, 그 이외의 수정사항이 있다면 수정하기! TODAY DONE 메인 화면 팀원 소개 페이지로 들어갔을 때, 바로 보이는 화면 내 디폴트 값 지정하기. 카드 앞면 링크 처리 → 이메일 , 깃허브, 블로그 extra issue: 공란일 경우→ 처리 기술스택에 글자수 제한을 걸수 있는지 확인해보기 카드 뒷면 필드명 추가 → [field - data] 양식 데이터 왼쪽 정렬 받아오는 데이터가 길면, 스크롤 기능 추가해 공간 더 확보하기. 수정하기 버튼 버튼 디자인 변경 ISSUES 바보이슈 1. git ignore 에 들어갈 파일을 따로 받.. 2024. 4. 18.
미니 프로젝트 - 팀 소개 웹페이지 개발 (2) 이전 진행도 : 미니 프로젝트 (1) 미니 프로젝트 - 팀 소개 웹페이지 개발 (1) 팀 소개 웹페이지 개발 프로젝트 소개 : 팀원 7명의 짤막한 자기소개를 담은 웹페이지 제작 내가 맡은 부분 : 전체 개발 중 팀원 소개 페이지 담당 TODAY DONE 와이어 프레임 디자인 멤버 소개란 디 dev-hr.tistory.com 글을 다듬는 것은 추후에 시간을 들여서 할 것. 일단 기록해두는 것에 초점을 두기로 했다. TODAY GOAL DB에서 데이터 받아 처리하기 다른 동료들이 만들어둔 페이지와 연결하기 여유시간 존재 -> CSS 모양, 형태 다듬기 진행. TODAY DONE > 팀원 리스트 실패 case 핸들링 하는 방법 등등. 팀원 리스트 팀원 명 → DB에서 받아올 것. key를 팀원 이름으로 설정 .. 2024. 4. 17.