항해 99 (6기)/SIL(Sometimes I Learned)

2022_03_13_14 SIL(항해 7-8일차)

태투2 2022. 3. 13. 21:09

 

1. 회고

드디어 항해99를  시작하고 처음 맞게 된 주말이다. 어제도 늦은 시간까지(정확히 말하자면 오늘) 알고리즘 문제의 굴레에서 벗어나지 못하고 전전긍긍했다. 계속 말하지만,, 될까 내가? ㅋㅋㅋㅋㅋ 이 의문은 항상 가지고 아침에 눈을 뜨는 것 같다.

오늘 동민이가 이런 이야기를 해줬다.(고선생의 이야기보따리) 한국의 대표 소설가 김영하 작가가 과거 홀로코스트의 비극을 예로 들어 세상의 인간유형을 살펴보면 첫 번째 지나친 긍정주의자, 두 번째 비관주의자, 세 번째는 비관하지만 현실을 살아가는 현실주의자로 3가지 유형의 사람이 있다고 했다. 홀로코스트 당시 학살된 유대인들 중 상당수는 첫 번째와 두 번째 유형의 사람이였다고 한다. 이유는 비관주의자는 어차피 자기는 죽을 목숨이니깐, 긍정주의자는 이유없는 긍정을 갖다가 죽임을 당했다는 것이다. 그런데 마지막 세번째 유형의 사람은 어차피 나는 죽을 목숨이지만, 오늘을 살아가야해,, 라는 현실적인 면모를 가지고 항상 개인정비를 하고 건강한 모습을 보여주면서 가장 오래 살았다는 ,, 이야기를 ,,

그래 나도 사실 계속 내가 개발자로 커리어 전환이 가능할까? 라는 의문을 계속 갖고 있지만, 지금 주어진 과제가 많기 때문에 현실을 살아가고 있는 세 번째 유형의 사람이다.. 오늘 동민이가 들려준 이야기를 통해 깨닫게 된 것은 나는 지금 멈추지 않고 계속 나아가고 있다는 것이다. 뭐,, 나의 가능성과 불투명한 미래의 대한 의문은 번듯한 개발자가 되기 전까지 계속될 것은 확실하다..

하지만,, 멈추지 않고 계속 나아간다.

 

일단

 

오늘을 살자!🤣

 

 

 

2. 배운내용

 

자바 기초 문법

 

1. 클래스

public class Class_variables_des {
     public static void main(String[] args){
        // 클래스 영역에 선언된 변수를 iv
        // 앞에 iv변수 앞에 static 이  붙으면 cv
        // 선언문만과 메서드선언문만 가능하다; ( sout 같이 출력을 위한 일반 문장은 들어갈 수 없다)
        int iv;
        // 인스턴스 생성시 iv 가 생성됨// 객체 = iv == iv 변수를 여러개 묶어 놓음;
        // 개별 속성값;(포커카드로 예를 들면 카드의 무늬와 숫자)
        static int cv;
        // 클래스가 메모리에 올라갈 때 생성;
        // 자동으로 만들어진다. // 이 클래스 파일이 cpu ram 에 roading 될때 자동으로 생성;
        // iv 와 달리 객체 생성 필요없다;
        // 공통 속성값;(포커카드로 예를 들면 카드의 폭과 높이)
        // 객체 생성시 속성값 앞에 참조변수명이 아닌, 클래스 명으로 사용해야한다.
        // ex)
        // class Card{
        // Card c = new Card();
        // c.width = 200; 👉 Card. width = 200;
        // }
        // 결론

        // 정리하자면 cv 는 그냥 아무때나 쓸 수 있고 iv 는 객체생성을 해야만 사용이 가능하다.
     }
 };

 

클래스를 정의하면

  • 설계도
  • 데이터 + 함수(구조체 + 메서드)
    서로 관련있는 데이터와 함수들을 묶음
  • 사용자 정의 타입(?)

[자바의 정석 - 기초편] ch6-9,10 클래스의 정의

2. 메서드

class method{
        int example(int lv int lv){
            //메서드 선언부 괄호 안에 있는 lv 를 매개변수(parameter)라 한다.
            //메서드 영역에서 선언되는 변수를 lv
            result = 0;
            //lv는 메서드 종료시 자동제거 된다.
            return result;
        }
    }

1. 메서드란 문장들의 묶음이다.
2.
메서드와 함수의 차이는 메서드는 반드시 클래스 안에 있어야하고, 함수는 클래스에 독립적이다
3.
메서드는 코드의 중복을 줄임
4.
코드 관리가 쉽고
5.
코드를 재사용 있고
6.
코드가 간결에서 이해하기가 쉽다.

또한 하나의 메서드는 한가지 기능만 수행하도록 작성한다.

  • 유지보수가 용이하고
  • 최소의 의미가 있는 작업단위로 나누어야 재사용성이 높아지기 때문이다.

메서드 = 선언부 + 구현부

 

선언부에는 반환타입(작업결과 타입) 메서드 이름과 (매개변수=입력: 작업에 필요한 //0-n 까지){

구현부 : 작업을 수행하는 코드(메서드 호출시 수행할 코드)

출력값은 : 0 -1 개  (만약 값이 여러개이면 배열을 이용하거나, 객체로 묶어서 주면 된다.)

만약 반환할 값이 없으면 반환 타입에 void라고 적어주면 된다.

}

지역변수(lv) : 메서드 내에 선언된 변수이다.

위에 2개의 메서드가 있는데, 서로 다른 메서드 영역에 있는 lv는 이름이 같아도 상관이 없다.

lv 는 속해있는 메서드 영역 안에서 선언되고 해당  메서드 종료시 자동제거 되기 때문이다.

이 add 메서드 안에 선언되어있는 lv 를 매개변수(메서드에서 호출한 값을 add 메서드에 전달해준다해서) 영어로는 parameter:복사본//

add 메서드 안에 3개의 지역변수 2개의 메서드가 있다.

 

return 문이란?

  1. 실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다
  2. 메서드가 작업을 마치면 리턴문을 넣어줘야 한다.
  3. 메서드의 반환 타입이 void 때는 생략 가능;
  4. 조건문을   조건마다 리턴문을 넣어줘야 한다.

 

 

3. 배열

1. 배열의 선언: 배열을 다루기 위한 참조변수를 선언하는 과정

2.배열의 생성

3. 배열의 초기화 : 배열의 요소에 처음으로 값을 저장하는

 

Arrays 메서드를 이용하면 배열의 내용을 반환해준다.

 

 

3. CS 스터디

 

[책] CODE : 하드웨어와 소프트웨어에 숨어 있는  언어

 

1일차

chapter 1 친한 친구와의 대화

 

10살 짜리 아이가 길건너 옆집 친구와  손전등의 깜빡임으로 의사소통을 했다는 접근을 통해 모스부호의 동작원리에 대해 설명하고 있고,  이후 비교대상은 아니지만 모스부호의 속성에 대해 익숙해지는 것이 컴퓨터 CODE 속성을 좀 더 깊이 이해하는데 있어서 받드시 필요하다고 저자는 이야기 하고 있다.

이 책에서 CODE : 부호는 일반적으로 컴퓨터와 인간의 정보전달의 체계를 의미한다. 즉 커뮤니케이션엔 부호가 수반되어야 한다.

부호를 암호라 생각하는 것은 !오류! 소통이 쉬워야 하기 때문이다.

고양이를 개라고, 개를 고양이라고 하지 않는 것 처럼 단어 또한 일종의 부호가 될 수 있을 것이다. 또한 단어를 발음하기 위해 입을 통해 소리를 내는 것(=음성언어 혹은 말)과, 다른형태로 종이에 쓰여진 (=문자언어 또는 글)또한 부호이다. 이외에도 수화, 속기술, 약기술 등이 존재한다.

만약 말은 종이에 저장될 수 없기 때문에 글을 대신 쓰고, 어둠 멀리 모스부를 통해 소통하는 것 처럼, 어떤 부호가 다른 부호로 처리 불가능 한 경우에도 적절히 사용될 수 있다면 그 부호는 유용하다고 할 수 있다.

모스부호의 특성을 통해 가장 중요한 2가지를 살펴보면(깜빡임+두가지 모음), 이 두 가지의 것들을 적절히 조합되어 모든 형태의 정보로 전달한다는 것이다. 

 

chapter 2 부호와 조합

 

모스부호의 창시자 : 새뮤얼 핀리 브리즈 모스(1791 ~ 1872)

모스부호의 경우 받는 것 보다 보내는 것이 훨씬 쉽다. 왜냐하면 수신하고 난 후 이를 해석할 때 점과 선의 조합을 글자로 풀어내는 과정을 가져야 하기 때문이다.  

모스부호는 점과 선 두 가지 요소로 이루어져있는 이진(binary : 2개로 구성된) 부호라 할 수 있다. 이것은 동전을 던졌을 때 앞면과 뒷면만 나올 수 있는 성질과 비슷하다. 동전과 같이 두 가지의 성질만 가지는 이진 개체나 모스부호와 같은 이진 부호는 항상 2의 거듭제곱 수로 그 결과를 표현한다.

이진부호를 분석하면서 했던 일들은 수학에서 조합론 또는 조합적 분석이라고 말하는 분야의 아주 간단한 예이다. 전통적으로 조합적 분석은 확률과 통계분야에서 가장 많이 사용되고 있다.