프롬프트 AI&OpenAPI&공공데이터를 활용한 웹앱개발자 양성 과정 2일차

서명원·2023년 12월 10일

1. 값 바꾸기(Value Swap)

java에서 두개의 변수 안의 값을 바꾸기 위해선 단순하게 두 변수의 값을 교대로 할당하는 것 만으론 부족하다.

ex)
a = 5
b = 10
a=b
b=a

1) a에 5의 값이 할당됨
2) b에 10의 값이 할당됨
3) a에 10의 값이 할당됨
4) b에 10의 값이 할당됨

a와 b의 값을 스왑하려면 아래 같이 변수를 추가해줘야 정상적으로 스왑된다.

int tamp = a;
a = b;
b = tamp;

1) tmp에 5의 값이 할당됨
2) a에 10의 값이 할당됨
3) b에 5의 값(tmp의 값)이 할당됨

2. 조건문과 논리연산

if문의 안 쪽은 condition check가 참인 경우에만 실행된다.

조건식의 && || 연산자는 논리회로부터 나왔다.
논리회로는 트랜지스터(반도체)에 전류를 넣었을 때 출력여부를 정리한 것이다.

참 && 참 = 참
참 && 거짓 = 거짓
거짓 && 참 = 거짓
거짓 && 거짓 = 거짓
참 || 참 = 참
참 || 거짓 = 참
거짓 || 참 = 참
거짓 || 거짓 = 거짓

3. 기본타입

문자는 아스키 코드값으로 판별하기 때문에, 문자형인 char은 다음과 같은 int형으로 치환할 수 있다.
a = 87
A = 65

자바에는 기본 타입(byte, short, int, long, float, double, char, boolean) 과 기본타입에 해당하지 않은 참조타입이 잇다.

4. jdk와 jre

jdk 자바 개발 도구(Java Development Kit): JDK는 자바 언어로 소프트웨어를 개발하는 데 필요한 모든 도구와 라이브러리를 제공. 이 도구에는 컴파일러 (javac), 디버거 (jdb), JavaDoc 생성 도구, 그리고 다양한 개발 도구가 포함되어 있다.

jre 자바 실행 환경 (Java Runtime Environment): JRE는 자바 프로그램을 실행하는 데 필요한 런타임 환경을 제공한다. 이것은 자바 애플리케이션을 실행할 수 있는 환경을 구성하는데 필요한 모든 구성 요소를 포함한다.

jre 시스템 라이브러리를 통해 자바에 기본 내장된 라이브러리 코드들 확인 가능하다

이클립스는 통합 개발환경(IDE, Integrated Development Environment)으로 소프트웨어 개발을 위한 여러 도구와 기능을 통합하여 제공하는 개발 환경이다.

5.이클립스 단축키

main typing + ctrl+space: main메서드 생성
syso typing + ctrl + space: System.out.println
f11: 실행
Ctrl Shift s :전체 저장
ctrl s :저장
ctrl shift f :자동 인덴트
Alt 방향키 : 코드 이동
한줄 지우기 : Ctrl + d
Ctrl + alt 방향키: 복사
알트+시프트+s : 오버라이드, 생성자등 단축키
Ctrl shift o : 자동import

이클립스에서 이스케이프 문자를 복사 붙여넣기 하면 자동으로 추가 역슬래쉬가 삽입되는 에러가 있는데, 다음 설정으로 회피 가능하다.
Window > preperence > java > editor > typing > escape text when pasting into a string literal

6. 단축평가

단축평가(Short-circuit evaluation)는 논리 연산에서 두 번째 피연산자의 값이 평가되지 않은 채로 전체 표현식의 결과를 결정하는 방식이다.

AND연산자의 경우 첫번째 피연산자가 거짓(false)이면, 두 번째 피연산자는 평가되지 않고 전체 표현식은 거짓으로 결정된다.

OR연산자의 경우 첫 번째 피연산자가 참(true)이면, 두 번째 피연산자는 평가되지 않고 전체 표현식은 참으로 결정된다.

7. 코딩놀이

간단한 gui를 활용한 나이 판독 코드를 짜봤다.

JFrame의 레이아웃은 이하 사이트를 참조했다.

JFrame레이아웃참조

public class FrameTest extends JFrame {
	public FrameTest() {
		setTitle("나이 판독기");
		setSize(500, 300);

		Container contentPane = getContentPane();
		contentPane.setLayout(new GridBagLayout());
		GridBagConstraints c = new GridBagConstraints();
		
		
		contentPane.setBackground(Color.ORANGE);
		

		JLabel label = new JLabel("나이를 입력하세요");
		label.setSize(500, 30);

		JTextField textField = new JTextField(20);
		JButton button = new JButton("판독");
		JLabel label2 = new JLabel("당신은 _ 입니다.");

		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				try {
					int age = Integer.parseInt(textField.getText());
					if (age < 1 || age > 150) {
						label2.setText("제대로된 나이를 입력해 주세요.");
					} else if (age <= 19 || age >= 60) {
						label2.setText("당신은 할인대상 입니다.");
					} else {
						label2.setText("당신은 할인대상이 아닙니다.");
					}
				} catch (Exception ex) {
					label2.setText("숫자를 입력해 주세요");
				}

			}
		});
		
		c.weightx = 0.0;
		c.gridx = 0;
		c.gridy = 0;
		contentPane.add(label, c);
		c.gridx = 0;
		c.gridy = 1;
		contentPane.add(textField, c);
		c.gridx = 1;
		c.gridy = 1;
		contentPane.add(button, c);
		c.weightx = 0.0;
		c.gridx = 0;
		c.gridy = 2;
		contentPane.add(label2, c);

		setVisible(true);
	}

	public static void main(String[] args) {
		FrameTest ft = new FrameTest();

	}

}

8. 기타 주의사항

정수형은 int, 실수형은 double을 주로 사용함.

printf에서 정수형을 %c로 출력하는건 문제 없으나,
문자형 데이터를 %d로 출력할 땐 명시적으로 형변환할 필요가 있다.

profile
백엔드 취업을 꿈꾸는 일본어 전공자

0개의 댓글