이때까지 작업하던 작업환경이 아닌
새로운 환경을 만들어서
자바 고급과정을 배울 것이다.
자바 4강에서 vscode 세팅하며
작업환경 만드는 과정도 했었다.
똑같이 View -> Command Palette -> Java를 검색해
Java: Create Java Project를 눌러서
새 작업환경을 만들어준다.
패키지 만드는 방법!!
신경 써서 만들자
사이트 이름이 metacoding.site 라면
패키지 이름은 site.metacoding이라고 거꾸로 타고 올라가게 만들어준다.
vscode에서 패키지 이름에 .을 붙이면 그냥 . 으로 인식해버린다.
여기선 역슬래시를 사용해야 한다.
os 명령어(shell)
파일명에 . 이 먼저 나오면 숨김 파일임을 뜻한다.
ex) .gitignore
gitignore 파일 안에 .zip 이라고 적어놓으면
작업 환경 안에 있는 zip 파일들은 git add 안되게 처리해준다.
lib/
lib폴더 아래 있는 것들 다 git add 안되게 처리해준다.
git 설정도 다시 해주자.
내 git hub에도 새로운 Repository를 생성해줘야 한다.
git init
깃 시작, 내가 지금 작업하는 영역을 지정하는 것 = 카메라를 켠 것
git add git add . git add 폴더
사진 찍은 것 전체 사진 그 폴더만 사진
git commit
사진 저장하는 것
StringCollection을 배워보자.
긴 문자열을 저장할 때,
통신을 할 때와 같이 문자열을 차곡차곡 저장해야 할 때 StringBuffer 사용한다.
StringBuilder라는 클래스도 있는데 StringBuffer를 사용하자.
버퍼는 메모리 공간을 말한다.
즉 StringBuffer는 스트링을 저장하는 공간이다.
append( ) 메서드를 통해 문자열을 추가해준다.
append에 Ctrl + 클릭해보면 매개변수가 오브젝트 타입이다.
오브젝트는 모든 타입의 부모이므로 어떤 타입이든 다 받을 수 있다.
package site.metacoding.ex23;
public class StringCollectionEx01 {
public static void main(String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?");
sb.append("serviceKey=서비스키값");
sb.append("numOfRows=10&");
sb.append("pageNo=1&");
sb.append("dataType=JSON&");
sb.append("base_date=20220126&");
sb.append("base_time=1700&");
sb.append("nx=97&");
sb.append("ny=75");
}
}
StringBuffer는 StringConstantPool을 안 쓴다.
가독성이 좋고, 메모리 공간의 효율이 좋다.
출력할 때는 sb.toString()을 쓰면
append 해서 넣은 문자열을 다 합쳐서 한 번에 보여준다.
StringBuffer와 StringBuilder의 차이가 뭘까?
화장실에서 손을 씻고 수건을 사용할 때 혼자 사용하면 그냥 닦으면 된다.
하지만 두 명이 동시에 접근하여 수건을 사용하려고 한다면
먼저 들어간 사람이 다 닦을 때까지 기다려야 한다.
무조건 혼자서 수건을 써야 할 때는 어떻게 해야 할까?
동기화를 해야 한다.
프로그래밍에서의 동기화는 일의 순서가 있다는 말이었다.
동기화를 하면 먼저 화장실에 사람이 들어가면 화장실이 lock 되어
먼저 들어간 사람의 일이 다 끝날 때까지
다음 사람은 들어갈 수 없다.
이게 StringBuffer이다.
StringBuilder를 사용하면 동시에 접근이 가능해서
자원을 해칠 가능성이 있다.
이 때문에 우리는 통신을 할 때,
다른 사람들이 접근하여 데이터가 섞이지 않고
데이터를 해치지 않기 위해 StringBuffer를 사용하자!
[출처]
https://cafe.naver.com/metacoding
메타코딩 : 네이버 카페
코린이들의 궁금증
cafe.naver.com
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9
메타코딩
문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com
www.youtube.com