Git
🔴 저장소 동기화 & 관리 흐름
새로운 branch를 만들어서
commit을 추가하고
origin에 push
MY GitHub Teacher's GitHub
(origin) (upstream)
----------- -----------
| | | |
----------- pr -----------
push ⬆ ⬈
-----------
| |
-----------
MY Com
🔴 원격 저장소 동기화 흐름
git status : 워킹트리가 클린한 상태인지 확인
git branch : 현재 내가 어떤 브랜치에 있는지 확인
git switch master : master 브랜치로 이동
<선생님 저장소의 최신 내용 받아오기>
git pull upstream master : 선생님의 master 브랜치에서 최신 변경사항을 받아온다
➜ our_project 폴더에 파일이 추가된 걸 확인 가능
<내 GitHub 저장소로 동기화>
git push origin master : 방금 upstream에서 받아온 변경 사항을 내 저장소(origin)에도 반영
➜ 내 저장소에서 최신 상태로 동기화된 걸 확인 가능
⭐ 선생님이 PR을 수락해 merge되면 해당 branch는 삭제
🔴 공부용 브랜치 생성 & 관리 흐름
git branch : 현재 내가 어떤 브랜치에 있는지 ➜ 확인 현재 master
git branch -D study : study 브랜치 삭제
git branch : study 브랜치 없는 상태인지 확인 가능
git branch study : study 브랜치 생성
git switch study : study 브랜치로 이동
JavaScript
// Step10_array.html
<h1>배열의 다양한 함수</h1>
<script>
const nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach((item)=>{
console.log(item);
});
// nums 배열 안에 저장된 값을 활용해서 새로운 배열을 만들어준다
const newNums = nums.map((item)=>{
// 여기서 return한 값으로 새로운 배열이 만들어진다
return item*2;
});
const newNums2 = nums.map((item)=>{
return item-2;
});
</script>
1
2
3
...
10
// newNums
(10) [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
// newNums2
(10) [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]
JAVA
예시
EXIT_ON_CLOSE : JFrame 클래스의 static 필드 ➜ 창을 닫을 때 프로그램 종료
CENTER : FlowLayout 클래스의 static 필드 ➜ 가운데 정렬할 때 사용
JButton btn = new JButton("버튼");
add(btn);
ActionListener : UI에 어떤 동작이 일어났을 때 호출될 예정인 메소드를 가지고 있는 객체
➜ 메소드 1개짜리 인터페이스
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("버튼 click");
}
};
btn.addActionListener(listener);
ActionListener listener = (e)->{
System.out.println("버튼 click");
};
btn.addActionListener(listener);
btn.addActionListener(e->System.out.println("버튼 click"));
public class MyFrame extends JFrame implements ActionListener{
...
btn.addActionListener(this);
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("버튼 click");
}
}
public class MyFrame extends JFrame implements ActionListener{
...
JButton btn1 = new JButton("추가");
JButton btn2 = new JButton("수정");
JButton btn3 = new JButton("삭제");
add(btn1);
add(btn2);
add(btn3);
// 하나의 액션 리스너(this)를 여러 버튼에 등록
btn1.addActionListener(this);
btn2.addActionListener(this);
btn3.addActionListener(this);
// 버튼별 동작 구분을 위한 ActionCommand 설정
btn1.setActionCommand("insert");
btn2.setActionCommand("update");
btn3.setActionCommand("delete");
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("버튼을 눌렀네요! 하지만.. 버튼을 눌렀을까요?");
// Component에 설정된 ActionCommand 값을 가져옴
String cmd = e.getActionCommand();
// 문자열 비교는 .equals() 사용
if(cmd.equals("insert")) {
System.out.println("추가합니다");
}else if(cmd.equals("update")){
System.out.println("수정합니다");
}else if(cmd.equals("delete")) {
System.out.println("삭제합니다");
}
}
}
public class MyFrame extends JFrame implements ActionListener{
// 버튼의 참조값을 담을 필드
JButton countBtn;
// 버튼을 누른 횟수를 저장할 필드
int count;
public MyFrame() {
setTitle("나의 프레임");
setBounds(100, 100, 300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 레이아웃 매니저 객체 생성
FlowLayout layout = new FlowLayout(FlowLayout.CENTER);
// 프레임의 레이아웃 매니저 설정
setLayout(layout);
// 생성자 버튼의 참조값을 필드에 저장하면 객체 안에서 어디서든지 활용 가능
this.countBtn = new JButton("0");
add(countBtn);
countBtn.addActionListener(this);
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
@Override
public void actionPerformed(ActionEvent e) {
// count 값을 1씩 증가
count++;
// 버튼의 text 를 변경하려면 생성자에서 new JBtton() 했던 참조값을 여기서 사용할 수 있어야 한다
countBtn.setText(Integer.toString(count));
}
public class MyFrame extends JFrame{
// 생성자
public MyFrame() {
setTitle("나의 프레임");
setBounds(100, 100, 300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 레이아웃 매니저 객체 생성
FlowLayout layout = new FlowLayout(FlowLayout.CENTER);
// 프레임의 레이아웃 매니저 설정
setLayout(layout);
JButton countBtn = new JButton("0");
add(countBtn);
countBtn.addActionListener((e)->{
int count = Integer.parseInt(countBtn.getText());
count++;
countBtn.setText(String.format("%d", count));
});
setVisible(true);
}
public static void main(String[] args) {
new MyFrame();
}
}