오늘도 끄적끄적

느리더라도 꾸준하게

어제 잠이 안 와서 늦잠을 잤더니 오늘은 어제꺼 복습이랑 연습문제 밖에 못 풀었다…
내일부터 또 다시 진짜 빡세게 이빠이 달려야겠다 ㅠㅠ

연습문제 오답노트

1~10 반복하기

1
2
3
4
5
6
7
class Test {
public static void main(String[] args){
for(int i = 0; i < 20; i++) {
System.out.println(i % 10 + 1);
}
}
}
더 읽어보기 »

위 개념들은 일단 자바에 존재한다. (다른 거에도 다 존재하려나…?)
비슷비슷해서 각각의 차이점이 궁금해서 정리해보았다.

일단 이 포스트에서 소개하는 자료구조들은 Array의 다음과 같은 단점들을 극복하고자 나왔다.

  1. 길이가 한정적이라 길이를 넘어서게 되면 새로 배열을 만들고 복사를 한 후에 새로운 값을 넣어야한다는 굉장히 큰 비용을 지불해야한다.
  2. 똑같은 타입의 요소들만 들어간다.

차이점

더 읽어보기 »

다형성(Polymorphism)

객체지향 개념에서 다형성이란 여러 가지 형태를 가질수 있는 능력을 의미함.
자바에서는 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현함.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class TV2 {
boolean power;
int channel;

void power(){}
void channelUp(){}
void channelDown(){}
}

class CaptionTV extends TV2 {
String text;
void caption(){}
}

class Test4 {
public static void main(String[] args) {
TV2 t = new TV2();
CaptionTV c = new CaptionTV();
TV2 t2 = new CaptionTV();

System.out.println(c.text);
// System.out.println(t2.text); TV2에 생성된 것만 참조 가능.
// CaptionTV c2 = new TV2(); CaptionTV보다 TV2가 가진 멤버가 더 적어서 생성 불가능.
}
}

다음과 같은 특성을 지닌다.
참조변수 a = new 인스턴스타입() 을 기준으로 설명한다.

더 읽어보기 »

자바에 대한 근본도 없고, MVC, Servelet/JSP에 대한 이해도 제대로 없는데 이런 걸 해도 될런지 모르겠지만… 일단은 시작!
나머지는 병행해가면서 해보자…

스프링 vs 스프링 부트

  • 스프링: 프론트로 치면 웹팩, 바벨, 걸프 설정 등등을 처음부터 내가 다 짜줘야함.
  • 스프링 부트: CRA(Create React App) or Vue-CLI와 같이 알아서 설정을 도와줌.
    IntelliJ에서 프로젝트를 만들 때 Sprign Initializer를 선택하면 된다.
    보이지 않는다면 최신버전으로 업뎃하고 플러그인에서 Spring Boot가 제대로 설치/활성화 됐는지 확인하자.

스프링이란?

더 읽어보기 »

연습문제 실수

  • 기존의 코드를 재사용할 수 있으면 하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class SutdaCard {
int num = 0;
boolean isKwang = false;
SutdaCard() {
// 이 한줄로 커버 되고 이래야 유지보수 측면에서도 용이하다.
this(1, true);
// num = 1;
// isKwang = true;

}
SutdaCard(int num, boolean isKwang) {
this.num = num;
this.isKwang = isKwang;
}
}
  • 형변환
    10f와 10.0f는 동일하니 쓸 데 없는 .0을 안 찍도록 하자.

  • 지역변수

더 읽어보기 »

웰 컴 투 정규표현식

문자 & 단어 세기

1
2
3
4
5
6
7
8
9
10
11
const str =
`반응형웹, 반응형 웹, Responsive, responsive web 웹표준
웹표준, 웹 표준, Web Standard, web Standard`;

const countChar = (char, str) => {
const matchedChars = str.match(new RegExp(char, 'gmi'));
return matchedChars ? matchedChars.length : 0;
};

console.log(countChar('웹', str)); // 5
console.log(countChar('웹표준', str)); // 2

동음이의어 세기

더 읽어보기 »

프로젝트로 바로가기

왜 만들었나?

수작업을 줄여보자.

과거 어떤 사람이 프론트 엔드 개발자 채용 공고에서 직접 수집한 키워드를 빈도수 별로 모은 자료를 보여준 적이 있다.
이후에 크롤러의 존재에 대해 알고 나서 물어보니 수작업으로 했다고 한다. (그렇기 때문에 신뢰도가 좀 더 높은 것 같다.)
이런 수작업(노가다성)을 어떻게 하면 줄일 수 있을까 고민을 하면서 만들어보고 싶다는 막연한 생각만 가지고 있었다.

더 읽어보기 »

소스 코드 보러가기
사이트에서 원하는 내용만 수집해오는 크롤러.
더 나아가 mecab-ko와 같은 형태소 분석기를 사용하면 키워드 별로 분류하고 빈도수도 알아낼 수 있다.
무한 스크롤 페이지에 적합하게 만들었고, 페이지네이션 사이트를 크롤링 하려면 직접 구현해야한다.
원티드의 프론트 개발 지원 자격을 크롤링 하여 키워드 별로 분류 후 나타낸 그래프

설치

1
npm i

형태소 분석기(한국어 버전)

더 읽어보기 »
0%