2024/10 12

[TIL] IP, TCP, UDP

IP란?-인터넷 프로토콜은 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약- 인터넷 통신 시에는 지정한 IP 주소에 데이터를 Packet이라는 단위로 전달  Packet?패킷(Packet)은 소스 IP, 대상 IP를 포함하고 있어서 어떤 컴퓨터에 데이터를 전송할지 판별할 수 있다.크게 헤더, 페이로드, 트레일러(수신여부 포함)로 구분되고, 데이터를 주기만 하는것이 아닌 받고 응답한다.  IP방식의 문제점..1. ip로 데이터를 보내기 때문에 어떤 프로그램에서 사용을 하는 데이터인지 알 수가 없다..2. 수신 상태에 상관없이 데이터를 보낸다 ( 비연결성 ) 3. 중간에 패킷이 소실되어도 손상여부를 송,수신 둘다 알 수 없다. 재전송도 하지 않는다. 그래서 신뢰성 문제를 해결하기..

카테고리 없음 2024.10.30

[TIL] 숫자야구게임(Trouble shooting)

이번 개인 프로젝트 과제의 평가 기준표이다. 기능 완성도 부분에서는 Lv1~4까지 총 4개의 파트로 나누어져 있다.보통 1에서 만든 기능에 추가적인 기능을 붙여서 Lv2를 만들고 또 추가로 붙여서 3을 만들어 나가는 형식이다.  숫자 외 입력상황 각종 기능들을 구현하고 테스트를 하던 도중 숫자 외 문자를 입력하였을 때 Type에러가 발생하여 앱이 예상치 못하게 종료되는 현상이 발생하였다. 옵션 선택이나 답 비교를 위해 받는 입력이 정수값이기 때문에 nextInt()를 이용하여 입력을 받도록 하였기에 문자가 입력될 경우 오류가 나는 것이었다. 일전에 공부를 하다가 봤던 try-catch문을 이용하여 예외처리를 하던것이 생각나 이를 이용하여 입력을 받을 때 정수가 아닌경우의 예외처리를 해주었다. 받은 입력이..

카테고리 없음 2024.10.25

[Coding test] 삼총사

위와 같은 문제를 어떻게 접근할까? 이런식으로 코드를 직접 짜기전에 노트에 적으면서 생각을 해보는 편이다. 학생 한명을 찾거나 할때는 단순 반복문을 사용해도 문제가 없겠지만 nCm같은 전체 중에 몇개의 조합을 짜는 경우에는 반복문은 적절하지 않다고 생각해서 재귀함수쪽으로 구상해 보았다. 삼총사가 아니라면 계속 순환하여금 조합을 찾을 수 있도록 만들었다.class Solution { int answer = 0; int[] temp; public int solution(int[] number) { temp = number.clone(); findTriple(0,0,0); return answer; } public void ..

카테고리 없음 2024.10.23

[TIL] Random, Math.random()

자바에서 난수를 생성하는 방법으로는 Random클래스를 이용한 방법과 random메서드를 이용한 방법 이렇게 두가지가 있다. Random클래스 기본적으로 클래스인 만큼 java.util.Random의 임포트가 필요하다스캐너를 이용하는것 처럼 Random random = new Random();을 이용하여 random객체를 생성해주면 이제 사용할 준비가 끝난것이다.이 랜덤 클래스의 주요 메서드들로는 nextInt(), nextDouble(), nextBoolean(), nextLong() 등이 있는데 next뒤의 타입에 맞는 난수값을 생성하는 것이다. 이 랜덤 클래스의 특징 중 하나가 바로 시드를 사용할 수 있다는 것이다.시드가 뭘까? 컴퓨터는 사실 난수를 만들어 낼 수 없다. 입력값에 따른 출력을 내어놓..

카테고리 없음 2024.10.22

[TIL] Thread

프로세스와 쓰레드 이것들이 뭘까? 프로세스 : 운영체제로부터 자원을 할당받는 작업의 단위 쓰레드 : 프로세스가 받은 자원을 이용하는 실행의 단위  쓰레드의 선언 방법쓰레드를 이용하는 방법으로는 이렇게 두가지가 있다.1. 쓰레드 클래스를 작성하는 것과 2. Runnable 인터페이스를 구현하는 방법 두개의 차이가 뭘까?  먼저 쓰레드의 생명주기를 알아보자 이런식으로 NEW상태로 객체만 만들어진 상태, start()를 통해 RUNNABLE인 실행 대기상태,  상황에 따라서 실행되고 실행대기 상태를 왔다갔다 반복할 수 있다. 그러고 마지막엔 종료 상태로 넘어가게 된다.   위에서 봤던 두 방법중 1번 방법은 쓰레드 클래스를 이용하여 선언했던 방법으로 쓰레드를 생성하면 NEW상태가 되고 이를 start()메서드..

카테고리 없음 2024.10.21

[TIL] 슈팅 트러블

약 1주일 정도 되는 시간동안  계산기 만들기 Lv1,2,3의 과제가 있었다. lv1은 클래스 없이 기본적인 연산을 수행할 수 있게 만드는 계산기였고,lv2는 클래스를 적용해 기본적인 연산을 수행할 수 있는 계산기,lv3은 이넘, 제네릭, 람다 등을 이용하여 만든 계산기 였다. 원하는 인덱스의 값이 사라지지 않는 현상배경 : 컬렉션에 기록된 값을 삭제하는 부분을 만들라고 해서 기록에 순서를 매겨 삭제하고싶은 순서의 번호를 삭제하게 만들려고 시도하였다.발단 : historyNum이라는 변수에 값을 넣고 이를 calculator객체에 있는 historyDelete()메서드의 매개변수로 넘겨주었다.전개 : 사람에게 보이는 순서와 인덱스 사이에는 1이라는 차이가 있으므로 1을 더해주었다.위기 : 인덱스 오류가 ..

카테고리 없음 2024.10.17

[TIL] Generic

제네렉이란 무엇일까?=> 데이터 타입을 클래스 내부에서 지정을 하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 말한다. 이게 무슨 소리일까?예시를 통해 알아보자 이런식으로 객체를 생성할 때 를 이용하여 안의 타입을 고정된 것이 아닌 생성할 때 사용자가 임의로 지정할 수 있다.String 대신 Integer를 이용하려고 하면 Integer을 넣어주면 된다. ※제네릭의 제한사항※1. 객체의 static 멤버에 사용할 수 없다.2. 제네릭 배열을 생성할 수 없다.  ※제네릭의 효용성※1. 타입 언어에서 중복되거나 필요 없는 코드를 줄여준다.2. 타입 안정성을 해치지 않는다.1. 제네릭은 클래스와 메서드에 사용이 가능하며 안에 사용할 타입을 지정할 수 있다. 2. 선언 해둔 타입 변수는 해당 클래스 내에서..

카테고리 없음 2024.10.17

[TIL] Lv.2 Calculator

오늘은 과제로 나온 계산기 만들기중 Lv.2에 해당하는 계산기를 만들었다. 이와 같은 기능들이 들어가 있는 계산기를 만드는게 Lv.2의 과제이다. 가장먼저 필요한 사칙연산을 작성하기로 했다.값을 과제의 조건에서는 숫자를 입력받을때 Int형으로 입력을 받지만 다 만들고 나서 실수형이 안받아지는게 불편해서 받을때부터 Double형으로 받을 수 있게 만들었다. import java.util.*;public class Calculator { double nowNum = 0; private final ArrayList arrResult = new ArrayList(); public void getList() { for (int i = 0; i 이 코드는 Calculator 객체의 코..

카테고리 없음 2024.10.15

[TIL] Class(클래스)

클래스란 무엇일까?-> 클래스는 객체를 생성하기 위한 설계도,  필드, 생성자,메서드로 구성된다. 그렇다면 필드, 생성자, 메서드는 또 무엇일까? 필드  :  객체의 속성으로 데이터를 저장하는 역할을 한다.ex >  String model;  String color;  같이 클래스 내부에서 선언된 변수들을 필드라고 한다. 생성자  :  객체의 생성 방식을 결정하는 역할을 한다.ex >  public Car(){} ..기본 생성자 , public Car( String model ){} ..model이라는 매개변수를 통한 생성자Car라는 객체를 만든다고 하였을때 company, model, color, price등등의 부분이 필드에 속하는 부분이고 밑에 있는 public Car(){} 부분이 기본 생성자라고..

카테고리 없음 2024.10.14

[TIL] 미니 프로젝트 마무리

오늘로 미니프로젝트가 마무리 되었다.  팀원들 다면평가와 KPT회고록을 작성하고 나머지는 학교 과제를 하는데 시간을 들였다. https://redbull97.tistory.com/9 Sparta_7th, 6조 Mini Project KT팀 스파르타 스프링 7기, 6조 Mini_Project에 대한 KPT 입니다. 팀명 : 손말이고기튀김팀원 : 김영웅, 김태훈, 박예진, 손민석, 김동건주제 : 팀 소개 페이지 프로젝트Keep  1) 별도의 Slack 채팅방을 사용redbull97.tistory.com우리 6조 손말이고기튀김 조의 KPT는 작성하여 대빵이신 영웅님의 블로그에 올라와있다. 조가 이렇게 휙휙 바뀌는줄 몰랐는데 이번 미니프로젝트에서 팀원을 되게 잘 만난 것 같다.  다른 조들이 만든 페이지도 많은..

카테고리 없음 2024.10.07