10. 변하지 않는 상수와 리터럴, 변수의 형 변환

 


강의 내용 정리

상수

1년 = 365일. 에서 365처럼 변하지 않는 값을 상수라 표현하며.

변수의 데이터형 앞에 final 을 입력하여 상수를 생성 할수 있습니다

상수의 명명 규칙은 오직 대문자 입니다.

final int ONEYEARDAYS = 365;

다른 변수들과 마찬가지로 상수를 선언시 값을 반드시 대입할 필요는 없습니다.

하지만 차후에라도 상수에 한번이라도 값이 입력되면 다른 값으로 변경되지 없습니다.

단어 학습

변수에 저장되어 있는 값을 가져 오는 경우를 : 래퍼런스 한다, 참조한다 라고 표현 합니다.

변수에 값을 대입하는 경우에는 : 어사인 한다 라고 합니다.

가독성은 : 리더빌리티 라고 합니다. 예문) 상수를 사용하면 리더빌리티가 뛰어나다.

상수를 사용하는 이유는 : 값 자체가 갖고있는 의미가 있다면 . 그 값의 의미를 표현하는 단어가 값보다 코드의 가독성을 높여주기 때문 입니다.

int 보다 큰 값을 입력하고 싶을때 리터널 끝에 L을 붙여서 long 변수에 넣는데 이렇게 L을 붙이는 방식을 리터널이라고도 합니다.

출처 : https://mine-it-record.tistory.com/100

 

 

상수풀(Constant pool)

값이 언제 메모리에 탑제 되는가? 라는 관점에서의 메모리 영역의 구분을 시작해보자.

코드의 실행시 메모리 탑제 과정

하드 -->(로드) --> 메모리 

  1 ) 실행되기 전부터 기본적으로 메모리를 할당받게 되는 값들이 있습니다 ( 상수 & 스테틱 )

    이 친구들이 실행이 끝날때까지 메모리가 탑제 되어 있는 공간을 상수풀이라고 합니다.

 

다른 자료형간의 계산 방법

실수 + 정수는 . 양쪽의 데이터형태가 표현하는 방법과 저장하는 방법이 전혀 다르기 때문에.

 필수적으로 형변환이 이루어 지게 되요.

묵시적 형변환과 명시적 형변환 이라는 단계를 거치면서 계산을 하게 되며.

묵시적 = 자동

명시적 = 수동

묵시적 형변환  = 두 값중에서 메모리 용량이 큰 자료형으로 형변환이 일어난뒤 계산됩니다. 4byte - > 8byte

3( int : 4byte ) + 1.000( double : 8byte ) =  4.000 ( double : 8byte )

명시적 형번환은 강제형변환이라고도 해요.


 

강의 내용 체크

단어 정리

리터럴상수풀 정리.

토막상식 : 상수는 수학에서는 방정식에서 변하지 않는수 . 수학에서는 "2 + 𝓍= 5"에서 2,5는 상수이고 𝓍 변수이다.

리터럴(literal) : yes or no. 문자 .숫자 등의 변수에 넣을려는 값을 뜻하며 엄밀히는 값 자체에서도 데이터 타입을 유추할수 있도록 표현된 것을 뜻합니다.  0.31은 double로 ""은 문자열 , ''은 char , 0x, 354f , char d= 42 에서 42의 값을 말 합니다. 

그렇기 때문에 리터럴에는 변수와 상수에 들어가는 값 을 구분할수 없습니다.

 

상수풀

위에서 정리된 것처럼 한번 탑제되면 프로그램이 종료 될때까지 . 메모리에 저장되는 특징을 가지고 있는데.기존의 변수의 생명주기는 메소드 내부에서 선언했을때 내부에서 생명주기가 끝나서. 메모리에서 소멸하지만.상수는 상수풀에 따로 저장되어 메소드가 종료되어도 계속 사용할수 있다고 해요.저장되는 공간은 Class와 같은 공간인데  Permanent area(고정영역)에 저장된다고 합니다.


 

학습 타이머


캠 스터디


 

스터디 그룹

https://open.kakao.com/o/g1mXVySd

 

온라인 강의 주소

패스트 캠퍼스에서 공지한 링크가 막혔습니다. 17일에 새로운 링크를 내려 주시면 수정 해야 할것 같습니다  : )

 


08. 자료형(data type) - 문자는 프로그램에서 어떻게 표현하여 사용하나요

 


강의 내용 정리

문자를 저장하고 불러오는 방법

  저장 : A (문자) => 65 (정수) .

    A 를 65의 값으로 저장하는 것을 인코딩

    65를 A로 불러오는것을 디코딩 이라고 한다.

 

  문자세트 : A를 어떤 정수값으로 저장할 것인가?

    A를 65라는 규칙을 정한 값으로 저장하는것을 아스키 코드 문자세트 라고 한다.

    ( 한글자 : 8 바이트 : 256bit ) ( 알파뱃 52개 + 특수문자 )

    초창기에는 나라별로 스스로의 문자에 맞는 문자 세트를 갖고 있었다. ( 대한민국 euc-kr )

    각 국의 문자세트를 표준화된 코드표로 정리하고, 웹상의 각국의 문자를 표현할때 문제가 없도록 하기 위해 나온것이 유니코드 :utf-8 , urf-16 입니다.

    utf-16 : 2바이트 (16비트 : 2의 16승) 이며 1바이트는 아스키 코드와 호환이 됩니다. 2바이트의 경우에는 유니코드만 호환이 되지만 1바이트주소 부분은 아스키코드와 완전하게 호환됩니다.

    utf-8 : 1~ 4바이트로 유동적으로 문자를 인식해서 문자 세트에 맞는 디코딩을 지원 . 통신에서 표준으로 사용하고 있습니다. 

    문자 타입의 값 입력

    'A' : 2byte (char타입으로 저장 됩니다)

   "A" : 문자"열"  (저장 데이터의 가장 마지막에 문자열의 끝을 나타네는 Null char가 존제합니다)

 

    char 에 들어가는 byte값 이내의 정수를 입력하면 . 따로 인코딩 절차가 없이 저장 되고.

    출력시에는 글자가 디코딩 됩니다.

 

 

 

강의 내용 체크

※인코딩이 다르면 이상한 문자가 출력되는 이유가 혹시 이런건 아닐까? 라는 추측에 대해서 검증

아스키 코드               0100 0100

유니 코드    0001 0200 0100 0100 (2바이트)   

에서 유니코드의 앞부분 0001 0200이 없다면 재대로 표현 되지만. 아닐경우 엉뚱한 아스키 코드의 값이 디코딩 되는것 인지 여러 커뮤니티에서 질문글을 등록해 놓고 답변을 종합해 보고 있습니다.

※ 커뮤니티 에서 없으면 문제세트 시트를 보고 . 디코딩 문자 세트 설정을 바꾸면서 테스트 해보면 될것 같습니다.

커뮤니티에서 얻은 답변

character set과 encoding을 구분해서 생각하셔야 합니다.

https://en.wikipedia.org/wiki/List_of_information_system_character_sets
 뭐 시간나시면 ascii EBCDIC 같은거 알아두시면 상식에 도움이 되구요.

unicode는 ascii를 확장하도록 설계되어 ascii의 문자들은 unicode에서 같은 값을 가지도록 되어 있습니다. 인코딩(utf-8 같은)을 거쳐도 그 값이 유지되며(정확히는 같게 할 수 있고 일부러 다르게도 되긴 합니다만 패스) 따라서 ascii character set의 문자들은 ascii든 utf-8이든 디코딩을 거치지 않아도 같은 값이라 별 문제없이 표현 됩니다.

euc-kr이나 iso-8859 같은 mbcs 방식도 ascii에 대해선 같은 이유로 문제가 없지만 나머지 영역은 디코딩 후 코드페이지를 찾으면 같은 글자에 대해 unicode나 각각의 문자셋은 다른 값을 가지기 때문에 다른 디코딩과 문자셋을 사용하면 외계어로 나오게 되는 것입니다.


참고로, utf-8이나 많은 멀티바이트 시스템들은 ascii에 포함되지 않은 문자들에 대해선 인코딩 최종값이 ascii 값과는 다르게 되도록 설계하며(첫 비트가 1입니다) 따라서 그런 글자들을 그냥 ascii로 보면 아주 박살이 나서 보이도록 되어 있습니다. 하지만 각각의 문자셋들끼리는 그런 게 없으므로 "뷁" 같은 이상한 글자로 보이는 경우가 허다합니다.

09. 자료형(data type)- 논리형과 자료형 없이 변수 사용하기


강의 내용 정리

 

자료형을 지정하지 않은 변수 만들기 (int, String 같은 지정된 데이터 타입을 사용하지 않기)

var 타입 : 지역변수 (로컬)로서 생성하고 사용할수 있는 호환용 데이터 타입

             어떤 값(숫자,문자,boolean)을 넣어도 자동으로 값에 적합한 데이터 타입을 확안하여 저장되는 타입.

  버전 10부터 사용 가능합니다.

자바스크립트나 파이선등의 유연한 변수타입을 갖고 있는 특징이 컴파일 언어에 적용된 경우에 해당합니다.

여기서 잠깐 파이선과 자바스크립트 같은 컴파일을 하지 않는 언어를 스크립트 언어라고 합니다.

var 사용법에서 스크립트 언어와 다른 점은 처음 데이터를 넣을때. var 변수의 타입이 정해 지기 때문에. 다른 타입을 한번더 넣으면 타입 오류가 발생하게 됩니다. 

boolean은 1바이트를 사용해서 yes or no 값을 저장할수 있습니다.

 

 


 

강의 내용 교차 검증

 


 

학습 타이머

 


 

캠 스터디

내용

공부하는 사진


 

스터디 그룹

https://open.kakao.com/o/g1mXVySd

 

온라인 강의 주소

패스트 캠퍼스에서 17일에 새로운 링크를 내려 주시면 수정 해야 할것 같습니다  : )

 


06. 정수는 프로그램에서 어떻게 표현하여 사용하나요


강의 내용 정리

※ 자료형의 두가지 형태

기본 자료형 : JAVA에서 재공되는 자료형으로 저장할수 있는 용량이 자료형의 종류별로 정해져 있어요.

  선언에 new 를 사용하지 않고 자료형의 이름(Int,String,char)을 변수 앞에 적어서 생성할수 있습니다.

참조 자료형 : 객체(오브젝트)를 저장하고 있는데 ( 첫번쩨 값의 주소 ) 용량이 정해저 있지는 않고. new 로 만들어요.

 

 1. 기본 자료형 ( 앞글자는 바이트 단위 )

    정수형 : 1xbyte 2xshort 4xint 8xlong

    문자형 : 2xchar

    실수형 : 4xfloat 8xdouble

    논리형 : 1xboolean

 

0과 1 사이의 0.1111같은 무한한 숫자를 저장하기 위해서는 특별한 방법이 필요했는데. 

과거에는 3.14라는 수를 3과 14로 분리해서 저장했지만. 최근에는 특수한 경우 이외에는 부동 소수점 방식으로 소수점 아래의 값을 저장하는 방식을 사용해요. 4바이트 float , 8바이트 double(64bit) 데이터 타입을 사용하고 있습니다.

 

우선 정수형 데이터 타입에서 저장할수 있는 수는 3바이트로 표현할수 있는 수의 경우 2의 3승-1 으로 0~7까지 이지만.

정수형의 가장 앞의 비트는 부호를 표현하기 때문에 1바이트는 실제로 7비트 만큼의 수를 저장할수 있습니다.

2의 7승 개 만큼의 숫자와 메모리의 가장 앞 글자로 부호를 표현하여 -128~127까지 표현할수 있어요.

음악파일이나 이미지 파일의 최소 단위 또한 일반적으로 1바이트를 데이터의 최소단위로 사용하고 있어요.

 

int num = 10  은 num 이라고 하는 메모리 주소가 int 형테를 가지고 있다고 해요.  10이나 문자 같은 값을 리터널 이라고 해요. 

long lNum = 12345678900에서도 리터널은 4바이트로 기본적으로 저장되서 오류가 나요 .

long lNum = 12345678900L 처럼 숫자 뒤에 L(소문자는 1과 구분이 않되요) 을 붙여주어 사용해요.

실수도 리터널의 기본적인 데이터 형태로서 double로 저장하기 떄문에 float를 사용하려고 한다면 F를 숫자 뒤에 붙어서 사용해야 정상적으로 메모리 용량이 지정 되요.

선언한 데이터 형테보다 리터널이 크면 out of range 오류로 상황을 확인할수 있어요.


강의 내용 체크

참조 자료형 :

  배열 , 객체 , 함수 등의 타입이 여기에 포함됩니다.

  참조 자료형은 하나의 값의 메모리 위치를 가르키는 것이 아니기 때문에.  여러개의 값 중에서 가장 첫번쩨 값의 주소를 저장하고 있어요.

 

07. 자료형(data type) 실수는 어떻게 표현하여 사용하나요


강의 내용 정리

실수 리터널값은 기본적으로 double타입으로 저장됩니다.

float타입 변수에 실수가 저장 될때 리터널의 기본 저장타입은 double타입 이기 때문에 용량 오버로 오류가 발생하게 됩니다. 이럴때 숫자 뒤에 f를 붙여서 리터널을 float타입으로 명시 하여 변수의 타입과 동일하게 저장 할수 있습니다.

 

소수점이 있는 값을 저장하는 방법 : 부동소수점 방식

과거에는 3.14라는 수를 3과 14로 두가지로 나누어 따로 저장 하고 있었습니다.

현대 에 와서는 1과 0 사이의 수많은 값을 적은 메모리에 저장할수 있는 부동 소수점 방식을 사용하고 있습니다.

  표현방법:  0.1 의 경우 : 1x10의 마이너스1승 = 0.1 입니다 .

  에서 1은 지수 -1은 가수 , 10은 밑수 라는 이름을 갖고 있습니다. 

 

  부동 소수점 방식으로 소수점을 표현하기 때문에 발생하는 오류

밑수가 0이 될수 없기 때문에. 가수가 아무리 0에 가까워도 값 0을 표현할수 없기 때문에 . 오차가 발생하게 됩니다

double A = 1;
for (int i = 0; i < 10000; i++) {
	A+=0.1;
}
System.out.println(A);

밑수가 2로 표현되는 경우가 많아요.  수가 밑수보다 낮게 표현되는게 정규화 된다고 합니다.

2의 -3 이면 1.22222처럼 밑수보다 결과값의 정수가 작은 경우에요.

 

 


 

강의 내용 교차 검증

double에 정수( 우리가 일상적으로 사용하는 수들)를 넣은 상태에서 이리~저리 계산을 반복 하다보면 부동소수점 오류로 인해서 값에 오차가 발생하기 때문에 버그의 원인이 될수 있다고 해요. 

  부동 소수점 오류를 해결하는 방법.

  1. 소수점 계산에서 float 보다 double를 사용하면 더 낮은 영역에서 오류가 발생하기 떄문에 double를 사용해요.

  2. 정수가 들어있을 것이다. 라고 예상했던 실수 타입의 데이터를 바로 정수로 캐스팅(형변환) 시키면 않되요. 소수점을 자르거나 반올림을 합시다.

  3. 실수타입의 데이터가 담겨있는 변수를 비교 연산할때 =을 쓰면 않되요. 에러가 발생할수 있는 영역을 크고 같다로 표현 해야해요.

  4.  큰 수를 다룰때 작은 상수값을 사용하면 . 오류가 정수 부분에서 생길수 있어요 . 

float의 상대오차는 약 10^-7 정도라고 하고, double의 상대 오차는 약 10^-15 정도라고 해요.

버그가 생기는 원인 정수가 들어있는 실수 데이터 타입을 그대로 사용해서 계산 하다보면 정수 데이터 타입으로 캐스팅(형변환)되어 저장 되어야 할때 타입 메칭이 되지 않는 오류가 발생하기 때문이라고 해요.

그밖에 부동 소수점에 대한 대처방법은 여기에서 찾아 읽어볼수 있어요.

https://www.acmicpc.net/blog/view/37

 

 


 

학습 타이머


 

캠 스터디

내용


 

스터디 그룹

https://open.kakao.com/o/g1mXVySd

 

온라인 강의 주소

https://bit.ly/37BpXiC%EF%BB%BF

 


01. 자바 프로그래밍


강의 내용 정리

자바 학습 챕터

  1. 자바 기초 : 문법

  2. 객체 지향 입문 

  3. 객체 지향 핵심 

  4. 자바의 유용한 클래스들

  5. 자바와 자료구조

  6. 자바의 다양한 기능들

  7. 자바를 활용한 알고리즘 문제

 

※ 챕터 설명

4. 자주 사용하는 기능들이 사용하기 쉽게 미리 만들저 있는 CLASS를 학습해요.

 

5. 자바에서는 자료구조가 클래스(이미 만들어진 기능)에 의해 구현이 되도록 유도 되고 있어요.

프로그램의 퀄리티를 높일수 있는 자료구조가 내부적으로 어떻게 구현되어있는지 훈련 합니다.

 

7. 알고리즘 학습으로 기본 실력을 갗출수 있도록 학습 

 ※ 많은 전문가들이 알고리즘 감각을 훈련하는것으로 통해 버그가 발행 했을 경우 찾는 속도가 높아진다고 하네요.

 

 

※ 자바란 무엇인가요?

자바의 특징

 1. 자바는 엄청 안정적인 언어를 목표로 태어난것이 아닐까 싶을정도로 안정적입니다.

 

 2. 플렛폼에 영향을 받지 않습니다. 다른 언어의 경우에는 컴파일(OS, HW와 직접적으로 대화하는 언어화) 되어있는 실행코드가 OS에 따라서 다르기 때문에 코드를 각각 OS에서 컴파일을 따로 진행해야 하지만. 자바의 경우에는 바이트코드(컴파일된 코드)가 가상머신 위에서 작동 되고 가상머신이 OS에 따라서 다른 실행 코드를 갖고 있게 중계 역활을 하도록 제작되었기 때문에 다양한 플렛폼에서 작동 됩니다.

 

 3. 객체 지향언어 입니다.

   절차지향언어(대표적으로C) 는 시간의 흐름의 순서대로 작동됩니다.

   객체 지향언어는 회원 > 상품 > 주문 > 배송 간의 자료가 서로의 방향으로 이동 하면서 비 순차적으로 작동 됩니다.

 연동되어있는 다른 훌륭한 프레임워크를 사용할수 있습니다.

 

  단어 JRE를 설치하면 JVM이 설치 되어있고. JDK에는 개발에 유용한 도구들이 많이 포함 되어 있습니다.

 

자바의 탄생 원인

C와 C++에서  포인터로 메모리관리가 쉽지 않아. 다운될 확률이 높았기 때문에 메모리가 자동으로 관리되는 기능이 탄생함. 모호한 부분도 전부 배제함. 플랫폼마다 소스 코드가 동일하게 돌아가지 못하는 결과로 파편화되어 관리가 부실해지는것을 방지.

 

자바에 대한 오해

과거에는 성능에 대한 이슈가 있었지만. 현제에는 속도에 대한 이슈는 사라졌다. 

 

 

Write once, run anywhere (WORA)

자바가 어떤 장비에서도 개발될 수 있고, 표준 바이트코드로 컴파일되고, 어떤 JVM에도 실행될 수 있음을 의미한다. HW적으로도 JVM칩, 인터프린터는 표준화 되어 있다

 

자바의 활용

웹서버 구현

안드로이드 프로그래망

게임 프로그래밍

 


 

강의 내용 교차 검증

1. 자바가 작동될수 있는 환경 : JRE 라고 합니다.

  웹 페이지(JSP) - > jre의 도움을 받아서 자바 문법으로 변환되어실행 됩니다.

  임베디스 or 마이크로 프로세서 - > 32bit로 작동할수 있지만. 실시간 으로 동작하는 시스템에서는 메모리 효율이 좋지 않습니다.

2. 객체 지향 언어의 종류

  Ruby , Python , C++ , objective-C , C#, java, javascript

 


02. 자바와 이클립스


강의 내용 정리

1. 자바 이클립스의 설치

  ! 이클립스를 설치하기 전에 자바가 설치가 되어 있어야 이클립스가 자바를 인식해서 오류가 나지 않아요.

  ! 코드를 생성하는 단계 까지는 이클립스내에 JRE아 플러그 인으로 들어가 있어서. 코드 작성과 확인은 할수 있어요.

 

2. 개발자는 java SE (스텐다드 에디션)을 다운 받으시면 되세요.

 

3. 유료화 된 이후 에는 JRE는 8 버전까지 무료로 사용할수 있고. java와 JRE를 따로 설치하는 절차가 생겼습니다.


 

강의 내용 교차 검증

1. 자바의 유료화정책

 ! 이전부터 java는 한국에서는 무료라는 인식이 있었지만 . 무료 였던적은 없었으며 JDK(개발도구)서비스 중에서 기술지원을 받을수 있을수 있는 모델이 1회 구매로 영구사용이 가능한 서비스의 비용 모델이 매달 비용을 지불하는 구독 모델로 변화한 샘이다. 기본적인 JDK와 java사용은 무료 이기 때문에 변한것은 기술지원 서비스의 비용 모델이며. JDK에는 두가지 모델이 있는데 이전부터 유저들이 무료로 사용해 왔던 JDK(openJDK)영역은 기존의 무료정책을 유지하며 오라클에서 기술 지원을 받을수 있는 유료 JDK 모델은 오라클JDK로 이름이 변경 되었다. 

 데스크탑에서는 2달러 50센트, 서버 25달러로 사용 가능하다. 

 

 


03. 자바 첫 프로그램 만들고 실행하기


강의 내용 정리

1. 페키지 이름은 전부 소문자로 , 클레스는 첫글자를 대문자로 만드는것 표준 이에요.

2. 자바가 구동 되는것은 클라이언트 보다는 서버측에서 구동 되는 경우가 어마 무시 ~ 하게 많아요.

3. main은 이클립스로 학습하는 과정에서 구동을 목적으로 사용하며 . 윕 서버에서 활용될때는 main없이 구동되는 경우도 많아요.

4. 저장 하면 바로 자동으로 컴파일 되도록하기 -> project - > build automatically

5. 하나의 java파일에 여러개의 class가 있을수 있는데. 여러개 중에서 public 은 하나만 있어야 합니다. (자세한건 나중에)

6. system.out.print에서system또한 java에서 재공하는 클레스 입니다. 

 


 

강의 내용 교차 검증

1. 충돌 방지를 위해 웹 서비스를 제작할때는 페키지명을 도매인의 역순으로 저장합니다. naver.com - > com.naver

2. 변수의 이름은 소문자로 시작합니다.

3. 매개변수의 이름은 타입과 동일하게 소문자로 입력합니다 . -> void run (Loop loop){}

4. 생명주기가 짧은 변수들은 짧게 . 생명주기가 긴 변수들은 길게 명명해서 다른 개발자가 알아체기 쉽게 합니다.

5. 메소드는 반드시 소문자로 시작합니다.

6. private 접근 제어가를 갖는 클레스의 변수에는 접미가 _가 붙습니다 . 

  class Run{

    private int count_;

  }

 


04. 컴퓨터에서 자료 표현하기

 

1. 메모리 주소를 표현할때 -> 보통 16진수로 주소 저장.

HW적으로 ON 과 OFF가 존제하는 반도체의 특성으로 0 과 1로 작동되는 컴퓨터가 탄생

1byte = 8bit


강의 내용 정리

1. 기계가 이해할수 있는것 0 1 , low high , 바이너리 코드 , 이진코드

2. 1byte  = 8bit 

3.  숫자를 표현할때 맨 앞 자리는 부호 ( 1 : 음수인지 ) ( 2 : 양수인지)를 표현합니다.

4. 십진수 이외의 숫자를 표현하는 방법

  바이너리 넘버 표현 => int bNum = 0b1010;

  팔진수 표현하기 : 숫자앞에 0을 입력합니다 => 012 : 10(10진수)

  십욱진수 표현 : 숫자앞에 0x를 붙여 줍니다. 

 

 


 

강의 내용 교차 검증

		int 십진수표현 = 10;
		int 이진수표현 = 0b1010;
		int 팔진수표현 = 012;
		int 십육진수표현 = 0xa;
		
		System.out.printf("%2d\n%2d\n%2d\n%2d\n%2d\n",십진수표현,이진수표현,팔진수표현,십육진수표현);

 

05. 변수는 변하는 수입니다


강의 내용 정리

변수란 : 번하는 값이 저장 되는 데이터 타입에 따라서 다른 사이즈를 갖고 있는 메모리의 주소를 사람이 알기 쉽게 문자화 한것이에요.

담을수 있는 종류에 따라서 메모리의 사이즈가 다르게 배정 됩니다.

정수. 실수, 글자, Yes or No , 등 값의 다양한 형태를 데이터 타입이라고 합니다.

= 는 이퀄이 아니라. 오른쪽의 값을 왼쪽에 넣는 기능을 합니다.

변수는 한 장소 근처에 모아서 선언하는게 좋은데. 중간 중간에 필요할때 선언하기도 합니다.

 

네이밍 컨벤션(Naming Convention) 이란 이름 을 적는 규칙이에요. 한글로는 명명규칙 이라고 할수 있죠.

이름을 지을때 특수문자는 $ (달라) 와 _(언더바) 2가지만 사용할수 있어요.

중요한 것은 가독성과 유추성 이에요. 타인이 읽을수 없는 코드는 코드가 아니다! 라고 말하기도 합니다.

numberOfStudent 과 ns 중에서 가독성이 좋은것은 전자 이죠?. 이름의 길이는 상관 없습니다.※ 옛날에는 긴 이름은 생명주기가 긴 변수에만 붙여줬다고도 해요.

길이가 길고 의미를 쉽게 알수 있는 변수가 무슨 역활을 하는지 나중에 봤을때에도 쉽게 의미를 알수 있어야 합니다. ( 영어 어휘가 필요한 이유)

C언어의 함수는 대문자로 시작한다는 과거의 명명법이 현제에는 모드 소문자로 교체 된것처럼. 그 시기와 조직에 따라서 명명법이 항상 바뀝니다.

 


 

강의 내용 교차 검증

※변수의 명명 규칙

컴퓨터 과학에서의 변수는 수학에서의 변수와는 뜻이 많이 다를수 있다.

컴파일러에서 변수가 가리키는 상징적인 메모리 주소의 이름은 실제 컴파일 과정에서 메모리의 주소로 변형된다.

영어에서는 변수를 값을 담는 컨테이너 라는 해석을 하며. 폴더 처럼 무언가를 담는 공간을 컨테이너라고 표현하나봐요. 

영어가 세계 공용어는 아니더라도 컴퓨터 공학에서는 전세계의 사람들이 이해할수 있는 영어와 숫자로 표현해요.

변수는 대문자를 구분해요.  Eng 와 eng 는 다른 변수 입니다.

 

 


 


 

학습 타이머


 

캠 스터디


 

스터디 그룹

https://open.kakao.com/o/g1mXVySd

 

온라인 강의 주소

17일에 수정 필요 : 패스트 캠퍼스에서 공지했던 링크가 막힘.

[사용하는 방법]

이글 아래의 박스에 있는 코드를 복사해서 티스토리의 관리자 매뉴에 있는 서식관리 기능을 통해 새로운 서식을 만들어 HTML모드로 붙여넣기 한 뒤 서식을 저장해 놓고 . 문서를 작성할 때마다 방금 저장한 기본 서식을 불러 오면 문서작업의 기본 틀을 쉽게 갗출수 있습니다. 

<p data-ke-size="size16">[&nbsp;패스트캠퍼스&nbsp;챌린지&nbsp;-19일차&nbsp;]&nbsp;문서&nbsp;서식</p>
<p data-ke-size="size16">&nbsp;</p>
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style1" />
<h2 style="box-sizing: border-box; border-width: 2px 12px; border-bottom-style: solid; border-bottom-color: #000000; padding: 3px 10px; border-left-style: solid; border-left-color: #000000; margin: 5px 0px; letter-spacing: 1px;" data-ke-size="size26"><span style="font-size: 30px; font-family: 'Cafe24Shiningstar'; font-weight: normal; color: #000000;">강의 챕터명</span></h2>
<p data-ke-size="size16">내용</p>
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style7" />
<h3 style="font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">강의 내용 정리</h3>
<p data-ke-size="size16">내용</p>
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style7" />
<p data-ke-size="size16">&nbsp;</p>
<h3 style="font-weight: bold; border-bottom: 1px solid #d83c3c; margin: 10px 0px 5px; border-left: 5px solid #d83c3c; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">강의 내용 체크</h3>
<p data-ke-size="size16">내용</p>
<hr contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style7" />
<p data-ke-size="size16">&nbsp;</p>
<h3 style="font-weight: bold; border-bottom: 1px solid #2B4743; margin: 10px 0px 5px; border-left: 5px solid #2B4743; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">학습 타이머</h3>
<p data-ke-size="size16">내용</p>
<p data-ke-size="size16">&nbsp;</p>
<hr style="margin: 20px auto 0px; border: none; cursor: pointer !important; z-index: 1; font-size: 0px; line-height: 0; background: url('../image/divider-line.svg') center -304px / 200px 420px no-repeat; width: 200px; height: 19px; padding: 18px 20px 17px;" contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style7" />
<p data-ke-size="size16">&nbsp;</p>
<h3 style="font-weight: bold; border-bottom: 1px solid #2B4743; margin: 10px 0px 5px; border-left: 5px solid #2B4743; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">캠 스터디</h3>
<p data-ke-size="size16"><span style="color: #333333;">내용</span></p>
<hr style="margin: 20px auto 0px; border: none; cursor: pointer !important; z-index: 1; font-size: 0px; line-height: 0; background: url('../image/divider-line.svg') center -304px / 200px 420px no-repeat; width: 200px; height: 19px; padding: 18px 20px 17px;" contenteditable="false" data-ke-type="horizontalRule" data-ke-style="style7" />
<p data-ke-size="size16">&nbsp;</p>
<h3 style="font-weight: bold; border-bottom: 1px solid #2B4743; margin: 10px 0px 5px; border-left: 5px solid #2B4743; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">스터디 그룹</h3>
<p data-ke-size="size16"><a href="https://open.kakao.com/o/g1mXVySd" target="_blank" rel="noopener">https://open.kakao.com/o/g1mXVySd</a></p>
<p data-ke-size="size16">&nbsp;</p>
<h3 style="font-weight: bold; border-bottom: 1px solid #2B4743; margin: 10px 0px 5px; border-left: 5px solid #2B4743; letter-spacing: -0.07em; line-height: 30px; padding: 0px 10px 1px;" data-ke-size="size23">온라인 강의 주소</h3>
<p data-ke-size="size16"><a href="https://bit.ly/37BpXiC%EF%BB%BF" target="_blank" rel="noopener">https://bit.ly/37BpXiC%EF%BB%BF</a></p>
<p data-ke-size="size16">직장인인강,&nbsp;직장인자기계발,&nbsp;패스트캠퍼스,&nbsp;패스트캠퍼스후기,&nbsp;패캠챌린지,&nbsp;한번에&nbsp;끝내는&nbsp;Java/Spring&nbsp;웹&nbsp;개발&nbsp;마스터&nbsp;초격차&nbsp;패키지&nbsp;Online.강의#한번에&nbsp;끝내는&nbsp;Java/Spring&nbsp;웹&nbsp;개발&nbsp;마스터&nbsp;초격차&nbsp;패키지&nbsp;Online.강의</p>

 

 

이전 수강자 분들의 강의 정리가 참고 가능한 블로그

 1. 무미니's 통통튀...

https://youngho7482.tistory.com/category/IT%EA%B3%B5%EB%B6%80/Java%26Spring%20%EC%9D%B4%EC%9A%A9%ED%95%9C%20%EC%9B%B9%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

+ Recent posts