이 글의 코드와 정보들은 [스프링 핵심원리 기본편] 강의를 들으며 정리한 내용을 토대로 작성하였습니다.
이 글의 코드와 정보들은 [스프링 핵심원리 기본편] 강의를 들으며 정리한 내용을 토대로 작성하였습니다.
그런 다음에 IntelliJ IDEA -> Settings(Preferences)를 클릭하여 검색창에 git을 입력한다.
git이 설치되었으면 git 밑에 있는 github 탭을 클릭하여 깃허브에 로그인을 하여 연동시킨다.
Git -> GitHub -> Share Project on GitHub을 클릭하여 Repository name을 적어주고 Share
버튼을 클릭한다.
뒤이어 나오는 팝업창에서 원하는 프로젝트 요소들을 체크한 후 Commit 메세지를 입력하고 Add
버튼을 클릭한다.
Google 서치 콘솔(구글 웹마스터 도구)을 사용해 내 사이트의 검색 트래픽 및 실적을 측정하고, 문제를 해결하며, Google 검색결과에서 내 사이트가 돋보이게 할 수 있다.
Jekyll
테마에서 구글 검색엔진에 포스트 글들이 검색되도록 설정해보려고 한다.
사전에 Google 계정을 만들어야 한다.
시작하기
버튼을 클릭한다.속성 유형 선택에서 URL 접두어 유형에서 URL 입력 칸에 내 사이트 도메인(URL)주소를 입력하고 계속 버튼을 클릭한다.
여기서 나는 https://devfancy.github.io/
을 입력했다.
HTML 파일
을 클릭한 후 아래의 google~~~.html
파일을 다운로드 하고 내 github.io 폴더안에 추가한다.Sitemap.xml(사이트 맵) 파일은 검색 엔진 크롤링 로봇에게 웹 사이트에서 크롤링 해야 할 URL 을 전달한다.
사이트 맵을 지원하는 검색 엔진은 이 정보를 사용하여 웹 사이트 크롤링을 보다 효율적으로 할 수 있게 된다.
jekyll-sitemap
이 적혀져 있으면, github 가 자동으로 sitemap.xml 을 생성해주므로 별도의 작업을 안해도 된다....
plugins:
- jekyll-paginate
- jekyll-sitemap
...
sitemap.xml
을 입력한 후에 제출 버튼을 클릭하면 성공이라는 표시가 뜨게 된다.Robots.txt
는 검색의 크롤링 로봇이 웹에 접근할 때 로봇이 지켜야하는 규칙과 사이트맵(sitemap) 파일의 위치를 알려주는 역할을 하는 파일이다.
Robots.txt 파일을 설정하지 않으면 구글 검색엔진 로봇들이 웹 사이트에서 찾을 수 있는 모든 정보를 크롤링하여 검색엔진 검색결과에 노출시키기 때문에, 내 특정 페이지가 검색엔진에 노출되지 않으려면 robots.txt 파일을 설정하여 이를 제어할 수 있다.
Robots.txt 파일 역시 내 github.io 폴더안에(루트 폴더)에 위치시켰다(sitemap.xml 위치와 동일)
나는 다음과 같이 robotx.txt를 설정하였다.
User-agent: *
Allow: /
Sitemap: http://devfancy.github.io/sitemap.xml
이 robots.txt
파일의 의미는 “모든 사용자 에이전트는 전체 사이트를 크롤링할 수 있다” 입니다.
Sitemap
뒤의 URL은 3단계에서 본인이 sitemaps에 등록한 URL 주소를 입력하면 된다.
1~2시간 정도 있다가 검색을 하게 되면, 제대로 나오는 것을 확인할 수 있다.
rss는 사이트 내의 새로운 컨텐츠를 정리해놓은 목록이다.
유튜브로 비유하자면, 내가 구독한 크리에이터의 새로운 컨텐츠가 나오면 나에게 알림이 오는 기능이다.
즉, rss는 직접 사이트를 방문하지 않아도 추가된 내용을 확인할 수 있게 해주는 것이다.
rss 등록하는 방법은 sitemap 등록하는 것과 같다.
처음에는 /rss로 등록했더니 계속 오류가 나서 여러 시도를 한 결과, /feed.xml
로 입력하고 제출하면 성공이 된 것을 확인할 수 있다.
만약 실패로 뜬다면, /sitemap.xml
을 삭제한 후에 다시 입력하여 제출하고, 그 다음에 /feed.xml
를 입력하면 성공할 가능성이 크다.(나는 이 방식으로 했더니 성공으로 떴다)
String 클래스는 문자열을 나타내며, 스트링 리터럴은 String 객체로 처리된다.
String 객체는 다음과 같이 생성할 수 있다.
String str1 = "home" // 스트링 리터럴로 스트링 객체 생성
char data[] = {'h', 'o', 'm', 'e'};
String str2 = new String(data);
String str2 = new String("home"); // str2과 str3은 모두 "home" 문자열
스트링 리터럴
은 자바 내부에서 리터럴 테이블로 특별히 관리하여, 동일한 리터럴은 공유시킨다.
그러나 new String()
에 의해 생성된 스트링은 Heap 메모리
에 별도로 생성한다.
리터럴을 공유시키는 이유는 스트링 생성에 대한 실행 시간을 줄이기 위해서이다.
스트링 리터럴, new String()으로 생성했던 스트링 객체는 수정이 불가능하다.
그러므로 스트링 리터럴을 공유해도 한번 만들어진 스트링은 고칠 수 없기 때문에 문제가 발생하지 않는다.
스트링 비교에서 == 연산자를 절대 사용해서는 안되며, 대신 String 클래스의 equals() 메소드를 사용해야 한다.
equals() 메소드는 스트링이 같으면 true, 아니면 false를 리턴한다.
String java = "Java";
if(java.equals("Java")) // true
String 클래스의 compare() 메소드를 사용하면 같은지, 큰지, 작은지를 모두 판단할 수 있다.
compareTo(String 비교대상)
메소드는 현재 스트링과 비교대상 스트링을 사전 순서로 비교하여 같으면 0, 비교대상보다 작으면 -1, 비교대상보다 크면 1을 반환한다.
파일로부터 스트링을 입력받을 때, 스트링 앞뒤에 공백이 끼는 경우가 있다.
trim()은 스트링 앞뒤에 있는 공백 문자를 제거한 스트링을 리턴한다.
String a = " Hello nice to meet you\t";
String b = a.trim(); // b = "Hellonicetomeetyou". 스페이스와 `\t` 제거됨
char charAt(int index)
- index 인덱스에 있는 문자 값 리턴
String toLowerCase()
- 소문자로 변경한 스트링 리턴 / String toUpperCase()
- 대문자로 변경한 스트링 리턴
int length()
- 스트링의 길이(문자 개수) 리턴
length
로 사용한다.예시) 문자열 내 p와 y의 개수 (갯수가 같으면 true, 다르면 false 리턴)
// 프로그래머스 Lv1
class Solution {
boolean solution(String s) {
s = s.toLowerCase();
int count = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == 'p')
count++;
else if (s.charAt(i) == 'y')
count--;
}
if (count == 0)
return true;
else
return false;
}
}
String [] split(String regex)
- 정규식 regex에 일치하는 부분을 중심으로 스트링을 분리하고 분리된 스트링을 배열에 저장하여 리턴
예시)
class Solution {
boolean solution(String s) {
String [] arr = s.toLowerCase().split("");
}
boolean contains(CharSequence s)
- s에 지정된 문자들을 포함하고 있으면 true 리턴
String replace(CharSequence target, CharSequence replacement)
- target이 지정하는 일련의 문자들을 replacement가 지정하는 문자들로 변경한 스트링 리턴
String subString(int beginIndex)
- beginIndex 인텍스부터 시작하는 서브 스트링 리턴
예시)
String str = "0123456789";
str.substring(5); // 결과 : 56789
String subString(int beginIndex, int endIndex)
- beginIndex 부터 endIndex 전까지 서브 스트링 리턴
예시)
String str = "123456789";
str.substring(5,10); // 결과 :6789
예시) 자릿수 더하기 - 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return하는 solution 함수
// 프로그래머스 Lv1
public class Solution {
public int solution(int n) {
int answer = 0;
String s = Integer.toString(n); //int n을 String으로 변환
for(int i=0; i<s.length(); i++){
answer += Integer.parseInt(s.substring(i, i+1));
}
return answer;
}
}
String concat(String str)
- str 스트링을 현재 스트링 뒤에 덧붙인 스트링 리턴
예시)
a = a.concat(b); // 문자열 연결 (a = "Hello", b = "friends") => "Hellow friends"
String trim()
- 스트링 앞뒤의 공백 문자들을 제거한 스트링 리턴