1. 깃허브 새로운 저장소 생성

2번 개발자는 새로운 저장소를 생성합니다.

2. 1번 개발자 저장소 clone하기

2번 개발자는 1번 개발자의 저장소를 clone 합니다

git clone --mirror {1번 개발자 페어 프로그래밍 저장소 주소}
cd {1번개발자의저장소이름}

3. 복사한 저장소의 원격 저장소 설정

2번 개발자는 새롭게 생성한 원격 저장소를 복사해온 프로젝트의 원격 저장소로 설정합니다.

git remote set-url --push origin {2번 개발자의 새롭게 생성한 저장소 주소}

4. push

2번 개발자는 프로젝트를 Push 합니다.

git push --mirror

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

HTTP & MVC  (0) 2023.04.16
java_연산자  (0) 2023.04.06
Java_개행문자?  (0) 2023.04.05
Java 변수, 아스키 코드  (0) 2023.04.03
개발 언어_Java(23.04.03)  (0) 2023.04.03

우선 웹에서는 결과를 웹페이지,

웹페이지가 모여있으면 웹사이트라고 하며 기능이 좀 많으면 웹애플리케이션(줄여서 웹앱)이라고도 한다.

웹을 사용할 때 가장 중요한 4가

  • HTML 
    : 웹페이지를 만드는 컴퓨터 언어
  •  URL
    : 원하는 웹페이지에 방문할 수 있도록 도와주는 주소체계
  • Web broswer, Web Server
    : 웹페이지를 주고받는 소프트웨어
  • HTTP (HyperText Transfer Protocol)
    : 웹브라우저와 웹서버가 통신할때사용하는 통신규칙

인터넷에서 가장 중요한 통신규칙이 된 HTTP는 웹을 넘어서서 인터넷이 동작하는 근간이 되었다.

 

 

  • MVC?

MVC(Model, View, Controller)

하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴이다.

Controller를 조작하면 Controller는 Model을 통해 데이터를 가져오고 그 데이터를 바탕으로 View를 통해 시작적 표현을 제어하여 사용자에게 전달하게 된다.

이러한 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 된다.

 

  • Model : 백그라운드에서 동작하는 비즈니스 로직(데이터) 처리
  • View : 정보를 화면으로 보여주는 역할
  • Controller : 사용자의 입력 처리와 흐름 제어 담당, 화면과 Model과 View를 연결시켜주는 역할

 

✨ 위의 개념을 WEB에 적용하게 된다면?
1. 사용자가 웹사이트에 접속 (User)

2. Controller는 사용자가 요청한 웹페이지를 서비스하기 위해서 모델을 호출(Manipulates)

3. Model은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후 그 결과를 Return

4. Controller는 Model이 리턴한 결과를 View에 반영 (Updates)

5. 데이터가 반영된 View는 사용자에게 보여짐 (Sees)


아직까지는 MVC에 대해서 정확히 이해가 가지 않는다..

Spring 공부를 하면서 개념을 더 찾아보고 익혀야겠다.

 

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

github 저장소 Mirror  (0) 2023.05.09
java_연산자  (0) 2023.04.06
Java_개행문자?  (0) 2023.04.05
Java 변수, 아스키 코드  (0) 2023.04.03
개발 언어_Java(23.04.03)  (0) 2023.04.03
  • 연산자와 피연산자란?

- 연산자 : 덧셈, 뺄셈처럼 계산할 기호

- 피연산자 : 연잔자로 인해 계산되어지는 숫자

 

  • 연산자 종류
산술 연산자 + - * / % << >> 사칙 연산과 비트연산
비교 연산자 > < >= <= == != 크고 작음과 같고 다름을 비교
논리 연산자 && || 그리고(AND)와 또는(OR)으로 조건을 연결
대입 연산자 = ++ -- 우변의 값을 좌변에 저장, 연산 복합대입
기타 연산자 (type) ?: instance of 형변환 연산자, 삼항 연산자, instance of 연산자
  • 논리 연산자
    && (AND = 피연산자 모두 참), || (OR = 피연산자 둘중 하나라도 참), ! (피연산자의 반대 boolean값)
// 논리 연산자
boolean flag1 = true;
boolean flag2 = true;
boolean flag3 = false;

System.out.println(flag1); // true
System.out.println(flag2); // true
System.out.println(flag3); // false

// 피연산자 중 하나라도 true 이면 true
System.out.println(flag1 || flag2); // true
System.out.println(flag1 || flag2 || flag3); // true
// 피연산자 모두 true 이면 true
System.out.println(flag1 && flag2); // true (flag1, flag2 모두 true 라서)
System.out.println(flag1 && flag2 && flag3); // false (flag3은 false 라서)

// And 연산
System.out.println((5 > 3) && (3 > 1)); // 5 는 3 보다 크고, 3 은 1 보다 크다 (true)
System.out.println((5 > 3) && (3 < 1)); // 5 는 3 보다 크고, 3 은 1 보다 작다 (false)

// Or 연산
System.out.println((5 > 3) || (3 > 1)); // 5 는 3 보다 크거나, 3 은 1 보다 크다 (true)
System.out.println((5 > 3) || (3 < 1)); // 5 는 3 보다 크거나, 3 은 1 보다 작다 (true)
System.out.println((5 < 3) || (3 < 1)); // 5 는 3 보다 작거나, 3 은 1 보다 작다 (false)

// System.out.println(1 < 3 < 5); // 불가능한 코드

// 논리 부정 연산자
System.out.println(!flag1); // false (flag1 값의 반대)
System.out.println(!flag3); // true (flag3 값의 반대)
System.out.println(!(5 == 5)); // false
System.out.println(!(5 == 3)); // true
  • 대입 연산자
    변수를 바로 연산해서 그 자리에서 저장하는 연산자
    기본 대입 연산자인 =,+,- 와 다른 연산을 함께쓰는 복합 대입 연산자가 있다. (+=,-= 등)
    복합 대입 연산자는 기본 대입 연산자를 심플하게 작성하게 해주는 것이지 기능은 같다.
    += 1 은 ++과 동일하다(피연산자에 1 더해주기)
    EX) num1 += num2 라고 하면 num1 = num1 + num2 가 되는 것.
    똑같이 -=1은 --와 동일하다(피연산자에서 1빼주기)

    🔥주의!
    ++ 또는 --가 피연산자 뒤에 붙이냐, 앞에 붙이냐에 따라서 연산순서가 달라진다.

연산자 연산자 위치 기능 연산 예
++ ++{피연산자} 연산 전에 피연산자에 1 더해줌. val = ++num;
num값+1 후에 val변수에 저장
++ {피연산자}++ 연산 후에 피연산자에 1 더해줌. val = num++;
num값을 val변수에 저장 후 num+1
- - - -{피연산자} 연산 전에 피연산자에 1 빼줌. val = —num;
num값-1 후에 val변수에 저장
- - {피연산자}- - 연산 후에 피연산자에 1 빼줍니다. val = num—;
num값을 val변수에 저장 후 num-1
// 대입 증감 연산자

public class Main {

	public static void main(String[] args) {
		int a = 10;
		int b = 10;
		int val = ++a + b--; // a 는 연산전에 +1, b 는 연산후에 -1

		System.out.println(a); // 11
		System.out.println(b); // 9
		System.out.println(val); // 21

		// 11 + 9 가 왜 21??
		// a 는 val 연산전에 ++ 가 수행되어서 11로 연산되었지만
		// b 는 val 연산후에 -- 가 수행되어서 기존값이 10으로 연산된 후 -- 가 수행.
		// 따라서 연산된 a값인 11과 연산되기전 b값인 10이 더해져서 21이 됨!


		int c = a--; // c 에 a 값 대입 후 a-1  (즉, a=10, c=11)
		int d = ++b; // b 값 +1 후에 d 에 대입 (즉, b=10, d=10)
		int val = c-- * ++d; // c 는 연산후에 -1, d 는 연산전에 +1

		System.out.println(a); // 10
		System.out.println(b); // 10
		System.out.println(c); // 11
		System.out.println(d); // 10
		System.out.println(val); // 11 * 11 = 121

		// 11 * 10 이 왜 121??
		// c 는 val 연산후에 -- 가 수행되어서 기존값이 11로 연산된 후 -- 가 수행되었지만
		// d 는 val 연산전에 ++ 가 수행되어서 11로 연산.
		// 따라서 연산전 a값인 11과 연산된 b값인 11이 곱해져서 121이 됨!
	}

}

쉽게 말해, 

int a = 10;
int b = 10;
int val = ++a + b--;

이 부분만 보면 나는 일단 뒤에 붙은 복합 연산자는 없다고 생각하고 본다.

그러면 val = ++a + b 이니까 a에 1을 더한 11 + 10 을 해서 val = 21이 되는 것이고 계산을 다 한 후 b에 복합연산자인 --를 붙여 b값은 9가 되는 것!

처음에는 뭔가 되게 복잡하다 생각했는데 생각보다 간단한 것이었다

 

  • 기타 연산자
    - 형변환 연산자
// 형변환 연산자
int intNumber = 93 + (int) 98.8; // 93 + 98

double doubleNumber = (double) 93 + 98.8; // 93.0 + 98.8

  - 삼항 연산자

    : 비교 연산의 결과값에 따라 응답할 값을 직접 지정할 수 있는 연산자.

      삼항 연산자는 3가지 피연산자가 존재하여 삼항 연산자라고 한다.(조건/참결과/거짓결과)

     - (조건) ? (참결과) : (거짓결과)

// 삼항 연산자
int x = 1;
int y = 9;

boolean b = (x == y) ? true : false;
System.out.println(b); // false

String s = (x != y) ? "정답" : "땡";
System.out.println(s); // 땡

int max = (x > y) ? x : y;
System.out.println(max); // 9

int min = (x < y) ? x : y;
System.out.println(min); // 1

 

⭐연산자 우선순위

산술 > 비교 > 논리 > 대입
// 연산자 우선순위
int x = 2;
int y = 9;
int z = 10;

boolean result = x < y && y < z; // <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // true

result = x + 10 < y && y < z; // +10 산술연산자 계산 후 <,> 비교연산자 계산 후 && 논리 연산자 계산
System.out.println(result); // false

result = x + 2 * 3 > y; // 산술연산자 곱센 > 덧셈 순으로 계산 후 > 비교연산자 계산
System.out.println(result); // false (8>9)

result = (x + 2) * 3 > y; // 괄호안 덧셈 연산 후 괄호 밖 곱셈 계산 후 > 비교연산자 계산
System.out.println(result); // true (12>9)

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

github 저장소 Mirror  (0) 2023.05.09
HTTP & MVC  (0) 2023.04.16
Java_개행문자?  (0) 2023.04.05
Java 변수, 아스키 코드  (0) 2023.04.03
개발 언어_Java(23.04.03)  (0) 2023.04.03

수업 과제 중 레시피를 입력하는 과제가 있었다.

  • 입력값
    • 내가 좋아하는 요리 제목을 먼저 입력합니다.
    • 요리 별점을 1~5 사이의 소수점이 있는 실수로 입력해주세요. (ex. 3.5)
    • 이어서 내가 좋아하는 요리 레시피를 한문장씩 10문장을 입력합니다.
  • 출력값
    • 입력이 종료되면 요리 제목을 괄호로 감싸서 먼저 출력 해줍니다.
    • 이어서, 요리 별점을 소수점을 제외한 정수로만 출력해줍니다. (ex. 3)
    • 바로 뒤에 정수별점을 5점만점 퍼센트로 표현했을때 값을 실수로 출력해줍니다. (ex. 60.0%)
    • 이어서, 입력한 모든 문장앞에 번호를 붙여서 모두 출력 해줍니다.
[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4 (80.0%)
1. 돼지고기는 핏물을 빼주세요.
2. 잘익은 김치 한포기를 꺼내서 잘라주세요.
3. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
4. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
5. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
6. 핏물 뺀 돼지고기를 넣어주세요.
7. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
8. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
9. 중불로 줄여서 오래 끓여주세요~!!	
10. 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^

출력이 이렇게 되어야 하는데

자꾸 1. 문장이 빈칸으로 나오는 것이다...

알고보니 sc.nextFloat의 문제였고

nextLine이 아닌 next로 하게되면 1.에 텍스트가 나오지만 띄워쓰기를 인식하지 못해 다음줄로 내려가는 현상이 반복....

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String title = sc.nextLine();
        float rate = sc.nextFloat();
        sc.skip("[\\r\\n]+");
        String input1 = sc.nextLine();

 

그래서 저번 조원에게 도움을 요쳥해 해결한 방법이 '개행문자' 였다.

이유가 첫번째 float만 입력을 받고 그다음 nextLine() 부분을 Skip하는 경우라고 했다.

그래서 nextfloat()에서 Enter를 칠때 발생하는 '개행문자'를 처리하지않고 버퍼에 남기기 때문이라고 한다.

 

수업시간에도 배운적이 없고 답안해설에도 안알려주던 내용이었는데.... 황당,,ㅎ

어쨋든 이렇게 또 새로운 지식 +1 얻게되었다.

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

HTTP & MVC  (0) 2023.04.16
java_연산자  (0) 2023.04.06
Java 변수, 아스키 코드  (0) 2023.04.03
개발 언어_Java(23.04.03)  (0) 2023.04.03
github에 관해서(23.04.03)  (0) 2023.04.03

[기본형 변수]

1. 선언

Int(Integer) : 저장공간 타입

number : 저장공간 이름

2. 변수 : 변하는 저장공간

int number = 10; // 1. 변수로 선언 및 초기화
number = 11; // 2. 변수의 값을 바꾼다. (덮어쓰기)

3. 상수 : 변하지 않는 저장공간

final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됨)
number = 11; // e2. 변수의 값을 바꾸려고 하면 에러가 남

  • 논리형 변수 : boolean
     - True/False 값만 저장
boolean flag = true; // 1 논리형 변수 boolean으로 선언 및 True 값으로 초기화
flag = false; // 2. False 값으로도 저장 가능.
  • 문자형 변수 : char
    - 'A','1'와 같은 문자 하나만 저장
char alphabet = 'A'; // 문자 하나를 저장
  • 정수형 변수 : byte, short, int, long
    - 0,1,2,99 와 같은 정수형 숫자값을 저장
       <정수형 변수 표현 범위>
    - byte : -128 ~ 127
    - short (2byte) : -32,768 ~ 32,767
    - int (4byte) : -21억 ~ 21억
    - long (8byte) : 9백경 정도의 매우 큰 수
byte byteNumber = 127; // byte는 -128 ~127 범위의 숫자만 저장가능
short shortNumber = 32767; // short는 -32,768 ~ 32,767 범위의 숫자만 저장 가능
int intNumber = 2147483647; // int는 -21억 ~ 21억 범위의 숫자만 저장 가능
long longNumber = 214783647L; // long은 숫자뒤에 알파벳 L을 붙여서 표기하며 매우 큰 수 저장가능
  • 실수형 변수 : float, double
    - 0.123, 0.9999와 같은 소수점 실수값을 저장
    - float (4byte) : 3.4 * -10^38 ~ 3.4 * 10^38(long 보다 큼)범위의 숫자 저장이 가능
    - double (8byte) : 1.7* -10^308 1.7 * 10^308(long 보다 큼)범위의 숫자 저장이 가능
    float 가 long 보다 더 넓은 범위를 표현하기 때문에 자동 형변환이 안됨.
long longNumber = 3.14f; // long < float 자동 형변환 불가
float floatNumber = 0.123f; // float 는 4byte 로 3.4 * 10^38 범위를 표현하는 실수값
double doubleNumber = 0.123123123; // double 은 8byte 로 1.7 * 10^308 범위를 표현하는 실수값

[참조형 변수]

  • 문자열 변수 : String
    - "Apple", "텍스트"와 같은 문장을 저장
String message = "Hello World"; // 문자열 저장
  • 그 외 : Object, Array, List ,,,
    - 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장
List<int> alphabet = [0,1,2,3]; // 기본형 변수 여러개 저장

[래퍼 클래서 변수]

  • 박싱 : 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것
  • 언박싱 : 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것
// 박싱
// Integer 래퍼 클래스 num 에 21의 값을 저장
int number = 21;
Integer num = number;

// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줌.

[아스키 코드]

문자는 숫자(int)를 문자(char)로 매핑해서 표현

그 중 Java에서는 기본적으로 아스키 코드 라는 규칙으로 문자를 저장(표현)함.

아스키 코드 표

  • 숫자 → 문자
// 숫자 -> 문자
import java.util.Scanner; // java.util이라는 놈이 제공하는 것을 쓰겠다.
                         // Scanner : 입력한 값을 저장하게 하는 것

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int asciNumber = sc.nextInt(); // nextInt()로 읽은 그 값을 하나하나를 아스키 넘버로 저장
        char ch = (char)asciNumber; // 아스키넘버를 character로 바꾸는 작업

        System.out.println(ch);
    }

}

이렇게 입력하면 콘솔창에서 커서가 깜빡거리게 된다.

커서가 깜빡거리는 콘솔창
콘솔창에 '97'을 입력하니 'a'라는 결과값이 나옴

콘솔창의 'a'값은 System.out.println(ch);에 의해 나온 결과값이다.

( 97이라고 입력한 것을 sc.nextInt()로 인해서 읽어줘서 asciNumber로 할당 되었다. 그 값이 (char)에 의해서 char변수 타입으로 바뀌어서 a라는 값이 나왔다(아스키표에 의함))

  • 문자 → 숫자
// 문자 -> 숫자

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        char letter = sc.nextLine().charAt(0); // 첫번째 글자만 받아오기위해 charAt(0) 메서드를 사용합니다.
        int asciNumber = (int)letter; // 숫자로 형변환을 해주면 저장되어있던 아스키 숫자값으로 표현됩니다.

        System.out.println(asciNumber);
    }

}

위와 똑같이 커서가 깜빡거리는 콘솔창
위와 반대로 'a'를 입력후 '97'의 결과값 도출


[형변환]

// 실수 -> 정수(0.XXXX -> 0)
double doubleNumber = 10.101010;
float floatNumber = 10.1010f;

// 변환(int)
int intNumber;
intNumber = (int)doubleNumber; // dounle -> int
System.out.printle(dounleNumber); // 변환 전
System.out.printle(intNumber); // 변환 후

출력값

// 정수 -> 실수
int intNumber = 10;

double doubleNumber = (double)intNumber;
float floatnumber = (float)intNumber;

System.out.println("intNumber => " + intNumber);
System.out.println("doubleNumber => " + doubleNumber);
System.out.println("floatNumber => " + floatnumber);

출력값

📌 변수 타입별 크기 순서

byte(1) → short(2) → int(4) → long(8) → float(4) → double(8)

 

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

HTTP & MVC  (0) 2023.04.16
java_연산자  (0) 2023.04.06
Java_개행문자?  (0) 2023.04.05
개발 언어_Java(23.04.03)  (0) 2023.04.03
github에 관해서(23.04.03)  (0) 2023.04.03

java를 알기 위해서는 우선 각 언어들의 특징을 알아야한다.

  • A언어 : 입/출력,문맥 기능만 구현가능한 언어
  • B언어 : A언어 기능 + 데이터를 연산하고 묶어서 관리할 수 있는 메서드구현이 가능한 언어
  • C언어 : B언어 기능 + 다양한 데이터 타입을 정의하고 자료구조에 담을 수 있는 언어
  • Java언어 : 어디서나 마시는 커피처럼 어디서나 동작 가능한, 자바 커피에서 이름을 따서 만듦.
                      C언어 기능 + 여러 기기에서 실행가능하도록 도와주는 공통 실행환경, 그리고 데이터와 메서드를 담는
                      클래스를 통해 객체를 만들 수 있는 언어

기능은 포함하지만, 각 언어별로 기능을 구현한 방법은 각기 다르다

[Java의 놀이터 JVM이란?]

Java Virtual Machine의 약자로 '자바 가상 머신'이라는 뜻이다.

어느 장비(PC,모바일,서버 등)에서든 JVM을 깔아주면 java 프로그램을 실행시킬 수 있는 가상 기기가 된다.

 

- 바이트 코드 (Java 프로그램 변환 코드) : 코드를 운영체제가 읽을 수 있는 코드로 Java컴파일러가 변환한 코드

- Java 컴파일러(compiler) : Java 코드(.java)를 운영체제가 읽을 수 있는 바이트 코드(.class)로 변환하는 변환기 

- 인터프리터 (Java.class코드해석기) : 운영체제가 읽은 바이트코드를 기기가 실행할 수 있는 기계어로 번역

- JIT 컴파일러 (빠른 Java.class 코드 해석기) : 인터프리터의 효율을 높여주는 서포터 해석기

- 메모리 영역 (Java 데이터를 저장하는 영역) : 운영체제로부터 JVM이 할당받은 메모리 영역

- 클래스 로더 (Java.class 바이트 코드를 메모리 영역에 담는 운반기) : JVM으로 class(바이트코드)를 불러와서 메모리에 저장함

- 가비지 컬렉터 (Java 쓰레기 청소기) : 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기


이번 수업에서 사용할 프로그램은 IntelliJ IDEA 이다.

 

[코드 해석하기]

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
}
  • class Main : (.java)를 (.class)로 바꿔주기때문에 class 라고 명칭을 하고 Main 클래스 라고 한다.
  • public static void main(String[ ] args) 에서 형광펜 쳐진 부분을 main 메소드 라고 한다.
    자바 프로젝트(앱)는 제일 먼저 클래스의 main 메소드를 실행시킨다.
    모든 프로젝트는 이 main 메소드로부터 시작되어서 가지를 뻗어나가면서 프로젝트를 구동함.
  • static : 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현.
  • public : "(접근)제어자"  src폴더에 있는 main class는  어디서든 접근이 가능,               

✨.java의 이름과 동일하게 일치시켜줘야 한다!

 

<output>

  • void :  메서드의 출력값의 데이터 타입
               "아무것도 없다." → 출력은 없다.
                ex) 출력이 String 으로 나와야 한다 라고 하면 public static String main(String[ ] args)~~

<input>

  • String[ ] args : 매개변수 자리
                            main 메서드를 호출할 때 input은 뭘로 할거냐, input의 타입은 뭘로 할거냐
                                                                      → string 타입으로하고 변수명은 args(변수명은 아무거나 써도 노상관)이다.

 

<객체> : 특징(속성, 변수), 행동(메소드)

하위요소를 표현할 때 온점(.)으로 표현함

public class Main {

    public static void main(String[] args) {

        System.out.println("Our First Project!");
    }
}

System class안에 있는 out이라는 놈 안에 있는 행동을 통해서 "Our First Project!"를 콘솔창에 프린트 한다.

 

print 줄 바꿈x

println 줄 바꿈 o

ln   line을 의미

 

 

 

 

'코딩 공부 > 개념정리' 카테고리의 다른 글

HTTP & MVC  (0) 2023.04.16
java_연산자  (0) 2023.04.06
Java_개행문자?  (0) 2023.04.05
Java 변수, 아스키 코드  (0) 2023.04.03
github에 관해서(23.04.03)  (0) 2023.04.03

+ Recent posts