Day 22

·2023년 7월 6일
0

Global_2023_2

목록 보기
21/56
post-thumbnail

1.아래의 소스코드에서 음수 값이 나오는 이유를 설명하시오.

class Account2{
int balance = 1000;

public void withdraw(int money) {
	
	if(balance >= money) {
		try {
			Thread.sleep(1000);
		} catch (Exception e) {
			
			e.printStackTrace();
		}
		balance = balance - money;
	}
}

}

class RunnableAccount implements Runnable{

Account2 acc = new Account2();

@Override
public void run() {
	//1000 700 400 100
	while(acc.balance > 0) {
		 // 100, 200, 300중의 한 값을 임으로 선택해서 출금(withdraw)
		int money = (int) (Math.random() * 3 + 1) * 100;
		acc.withdraw(money);
		System.out.println("::balance:" + acc.balance);
	}
	
}

}


class ThreadEx6 {
public static void main(String[] args) throws Exception
{
	Runnable r = new RunnableAccount();
	
	Thread t1 = new Thread(r,"첫번째");
	Thread t2 = new Thread(r,"두번째");
	
	t1.start();
	t2.start();
  • 설정한 딜레이 (1000ms = 1초) 사이에
    멀티 쓰레드의 값이 동시에 들어갔기 때문에

2. 자바에서 쓰레드 동기화에 대하여 설명하시오.

  • 멀티 쓰레드 사용시 1번에서 일어나는 것 같은 현상이
    일어나지 않도록 미연에 방지해준다.

3. 네트워킹 이란?

  • 두개 이상의 장치가 서로 연결되어 정보교환 하는것
    • 코딩에선 Socket

4. 아래의 객체를 설명하시오.

  • URLConnetion
    • URL을 통해 네트워크에 연결하여
      데이터를 전송하고 수신하는 데 사용되는 객체
  • InetAddress
    • 인터넷에 연결된 호스트의 IP 주소를 나타내는 객체
  • ServerSocket
    • 클라이언트의 연결을 수신하는 데 사용되는 객체
  • Socket
    • 클라이언트와 서버가 데이터를 전송하고 수신하는데 사용되는 객체

5. 프로토콜이란?

  • 서로 받았는지 확인(약속) 하는것 (예시 : 무전기 오바)

    • 통신을 위한 컴퓨터나 통신 장비 사이에서
      메세지를 주고 받는 양식과 규칙체계

    • 데이터 교환을 원활하게 수행할수 있도록
      표준화 시켜놓은 통신규약

6. TCP, UDP 에 대하여 설명하시오.

특징TCPUDP
신뢰성높음낮음
속도느림빠름
사용 예시웹 브라우징, 이메일, 파일 전송실시간 스트리밍, 게임, 네트워크 라우팅
장점데이터의 정확성과 순서를 보장속도가 빠름
단점속도가 느림데이터의 정확성과 순서가 보장되지 않을 수 있음

아무것도 없이 신입을 맨땅에 헤딩 시키는 회사는 추노각💨


Point

  • Thread.sleep(1000) 같은건 외부장치 연결되었을때 딜레이 시키는 역할
  • 멀티쓰레드와 기본쓰레드를 나눠서 사용해야 할 때가 온다
    • 기본적으로는 대부분 synchronized(동기화)로 해결됨

자바의 개발 목표는 네트워크였다

  • 지식 : TCP, UDP, OSI 7계층

    • 통신은 두 상대방이라는 개념이 배경
    • 패킷 교환 방식
      • 인터넷 교환 방식 (0101덩어리)
    • 서킷 교환 방식
      • 옛날 유선 전화방식 (계속 연결되어있는 상태)
    • 소켓으로 채팅을 구현하는건 7계층
      • 문자를 보내면 7계층에 들어있는 헤더(0101덩어리)가
        문자 데이터에 계속 붙으면서 전달되는것
    • UDP : 쪽지 / TCP : 채팅
  • 코딩 : Socket = 네트워킹 = 1~7계층 전부 포함

    • 채팅 : Socket + IOStream + 쓰레드 (중급?)
    • InetAddress
    • 1개의 파일에 public은 1개만
    • @Deprecated 는 ~버전부터 지원안한다 (쓰지마라는 뜻)
    • 빨대 원리 (URL로 서버와 연결)
    • 루비는 만명정도까지 감당할수 있다. 그 이상은 자바가 필요
  • RFC 문서 : 미국 인터넷 표준화 규약

    • IT회사의 신청으로 표준 추가
  • url을 주소를 치면 Request 요청 - > Response 응답

  • 코드 상에서 서버는 다수를 기다리고 있는 쪽

  • 내 컴퓨터(로컬호스트) IP : 127.0.0.1

  • 일반 IT업계는 중간관리직(허리)이 없다
    (그만두는게 10%, 나머지는 다 메이저로 가니까)
    그래서 2,3년만 있으면 기회는 무조건 온다

  • String은 final이라서 "a" + "b" 는 "ab" 를 새로 만드는것
    • StringBuffer는 동기화 가능 / StringBuilder는 불가

0개의 댓글