์ค๋ ํ ๊ณต๋ถ๐ง
์ค์
- ํธ๋ฌ๋ธ ์ํ & README ํ์ผ ์์ฑ
- ๊ณ์ฐ๊ธฐ ๊ณผ์ ์ ์ถํ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ (SQL, Java) 1๋ฌธ์ ํ์ด
์คํ
- ๊ณ์ฐ๊ธฐ ๊ณผ์ ํด์ค ์ธ์ ๋ฃ๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ธ๋ก๊ทธ ์ ๋ฆฌ
- Java ๋ฌธ๋ฒ ์ข ํฉ๋ฐ_4์ฃผ์ฐจ ์์ ๋์ ..!!
- TIL ๋ธ๋ก๊ทธ ์์ฑ
์ค๋ ์ป์ ๋ด์ฉ ์ ๋ฆฌโ๏ธ
ํธ๋ฌ๋ธ ์ํ & README ํ์ผ ์์ฑํ๋ ๋ฐฉ๋ฒ
- ๋ด๊ฐ ํธ๋ฌ๋ธ ์ํ
์ ์์ฑํ ์์
- ๋ฌธ์ ์ํฉ - ๋ฌธ์ ์์ธ - ๋ฌธ์ ์ํฉ ์ฝ๋ - ํด๊ฒฐ ๋ฐฉ๋ฒ - ๊ฒฐ๋ก
- ํธ๋ฌ๋ธ ์ํ
์ ์ ์ผ๋ฉด์ '๊ทธ๋ ๊ทธ๋ ๋งํ๊ฑฐ๋ ์ด๋ ค์ ๋ ๋ถ๋ถ์ ์ ๋ฉ๋ชจํ๋ ์ต๊ด์ ๊ฐ์ ธ์ผ๊ฒ ๋ค'๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
์ด๋์ ๋ ์ ์ด๋จ๋ค๊ณ ์๊ฐํ๋๋ฐ ๋ง์ ์์ฑํ๋ ค๊ณ ํ๋๊น ๊ธฐ์ต์ด ์ ๋์ง ์์๋ค... ๊ทธ๋ ๋น์์ ๋์ ๊ณ ๋ฏผ, ์๊ฐ๋ค์ ์ ์ด๋์ผ๋ฉด ๋์ค์ ํธ๋ฌ๋ธ ์ํ ์ ์์ฑํ ๋ ํธํ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ํ๋ค. - README ํ์ผ์ GPT์ ๋์๊ณผ ํ์๋ถ์ด ๊ณต์ ํด์ฃผ์ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํด์ ์์ฑํ๋ค!
- https://www.easy-me.com/d → ์์ฑํ README ํ์ผ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ ์ ์๋ค!
๊ณ์ฐ๊ธฐ ๊ณผ์ ํด์ค ์ธ์ ์ ๋ค์ผ๋ฉด์ ์ฌ๋ฌ๊ฐ์ง ์๊ฐ์ ํ๋ ๊ฒ ๊ฐ๋ค..
- ํํฐ๋์ ์ฝ๋ฉ์ ์ ์ด๋ค...
ํํฐ๋์ด ์์ฑํ์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๊ฐํ๋ง ํ๋ ๊ฑฐ ๊ฐ๋ค.. Lv3์์ ์ฌํ ์ฝ๋๋ก ๋ค์ด๊ฐ๋ ์๊ฐ ๋๋ ๋ชจ๋ฅด๋ ๋ถ๋ถ์ด์ฌ์ ๋ ๋๊ณ ๋ณผ ์๋ฐ์ ์์์ง๋ง ๋ญ๊ฐ ์ธํฐํ์ด์ค, ํด๋์ค๋ค๋ผ ์ฐ๊ฒฐ๋์ด์ ๊ธฐ๋ฅ๋ค์ด ์ฝ๊ฒ์ฝ๊ฒ ๊ตฌํ๋ ๋๋์ด์๋ค. - ๋ด๊ฐ ๊ณผ์ ๋ฅผ ๊ทธ๋๋ ์ ํด๊ฒฐํ ๊ฒ ๊ฐ์์ ๋ฟ๋ฏํ๋ค.
ํํฐ๋์ด ์งํํ์ ๋ฐฉํฅ๊ณผ ๋ด๊ฐ ์งํํ ๋ฐฉํฅ์ด ๋น์ทํ๋ ๊ฒ ๊ฐ๋ค.. ๋ด ๋๋๋ง ๊ทธ๋ด ์๋ ์๋ค(?)
Java ๋ฌธ๋ฒ ์ข ํฉ๋ฐ_4์ฃผ์ฐจ ์์ ํ๋ฉด์ ์๊ฒ ๋ ๋ด์ฉ
- ์์ธ ์ฒ๋ฆฌ์ ๋ํด์ ์ด๋์ ๋ ๊ฐ์ ์ตํ ๋๋์ด์ด๋ค.
- ๊ฐ์ฒด๋ฅผ ๋ฐํํ ๋ return this๋ก ํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค..
๋ด๊ฐ ์ด๊ฑฐ๋๋งค ์์ฒญ ํค๋งค๊ณ ์์๋๋ฐ.... this ์ 4๊ธ์ ํ๋๋ก ํด๊ฒฐ๋๋ค... ๐ซ ๐ซ - ๋ฌธ์์ด์ int ํ์
์ผ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ๋์๋ค.
Integer.parseInt(๋ฌธ์์ด)์ ํตํด์ ์ฝ๊ฒ ๋ฐ๊ฟ ์ ์์๋ค..!! - ๋ค๋ฅธ ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ ์ ํ๊ฒ ์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋ค!!
- ์์ ํด๊ฒฐํ ๊ฒ ๋ฟ๋ฏํ๋๊น ๋ฐ์ ์ฝ๋๋ก ๋จ๊ฒจ๋์ผ๊ฒ ๋ค!!! ๊ฐ์ฅ ์ค์ํ Parser ํด๋์ค๋ง ์ ์ด๋์ผ์ง ๐๐
package week04.homework4;
import java.util.regex.Pattern;
public class Parser {
// 1. ์์ฑ (๋ณ์)
//๋ฌธ์์ด์ด ์ฌ์น์ฐ์ฐ ๊ธฐํธ ์ค ํ๋๋ฅผ ํฌํจํ๊ณ ์๋์ง ํ์ธ
private static final String OPERATION_REG = "[+\\-*/]";
// ๋ฌธ์์ด์ด ์ซ์๋ง ํฌํจํ๊ณ ์๋์ง ํ์ธ
private static final String NUMBER_REG = "^[0-9]*$";
// calculator ์ธ์คํด์คํ
private final Calculator calculator = new Calculator();
// 2. ์์ฑ์ (์กฐ๋ฆฝ์ค๋ช
์)
// 3. ๊ธฐ๋ฅ (๋ฉ์๋)
// ํ์
์ด Parser๋๊น Parser๋ก return..? Parser๋ก ์ด๋ป๊ฒ returnํ์ง....
public Parser parseFirstNum(String firstInput) throws BadInputException{
// firstInput์ด NUMBER_REG์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์คํ (์ ์๊ฐ ์๋ ๊ฒฝ์ฐ)
if (!Pattern.matches(NUMBER_REG, firstInput)) { // ์
๋ ฅ๋ฐ์ ๊ฐ์ด ๋ฌธ์์ด ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ
// BadInputException์ ์๋ ๋ฉ์์ง ์ถ๋ ฅ
throw new BadInputException("์ ์"); // ๋ฉ์๋ ์์์, ์ค์ ๋ก ์์ธ ๊ฐ์ฒด๋ฅผ ๋์ง๋ค.
}
// ๋ฌธ์์ด๋ก ์
๋ ฅ ๋ฐ์ ์ซ์๋ฅผ intํ์ผ๋ก ๋ณ๊ฒฝ
int firstNumber = Integer.parseInt(firstInput);
// setFirstNumber ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ firstNumber๋ก ์ค์
calculator.setFirstNumber(firstNumber);
// ํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ค๋ค. (Parser ๊ฐ์ฒด)
return this;
}
public Parser parseSecondNum (String secondInput) throws BadInputException{
// secondInput์ด NUMBER_REG์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์คํ (์ ์๊ฐ ์๋ ๊ฒฝ์ฐ)
if (!Pattern.matches(NUMBER_REG, secondInput)) {
// BadInputException์ ์๋ ๋ฉ์์ง ์ถ๋ ฅ
throw new BadInputException("์ ์"); // ๋ฉ์๋ ์์์, ์ค์ ๋ก ์์ธ ๊ฐ์ฒด๋ฅผ ๋์ง๋ค.
}
// ๋ฌธ์์ด๋ก ์
๋ ฅ ๋ฐ์ ์ซ์๋ฅผ intํ์ผ๋ก ๋ณ๊ฒฝ
int secondNumber = Integer.parseInt(secondInput);
// setFirstNumber ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ secondNumber๋ก ์ค์
calculator.setSecondNumber(secondNumber);
// ํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ค๋ค. (Parser ๊ฐ์ฒด)
return this;
}
public Parser parseOperator(String operationInput) throws BadInputException{
// operationInput์ด OPERATION_REG์ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ์คํ (์ฌ์น์ฐ์ฐ ๊ธฐํธ๊ฐ ์๋ ๊ฒฝ์ฐ)
if (!Pattern.matches(OPERATION_REG, operationInput)) {
// BadInputException์ ์๋ ๋ฉ์์ง ์ถ๋ ฅ
throw new BadInputException("์ฌ์น์ฐ์ฐ ๊ธฐํธ"); // ๋ฉ์๋ ์์์, ์ค์ ๋ก ์์ธ ๊ฐ์ฒด๋ฅผ ๋์ง๋ค.
}
// ์
๋ ฅ ๋ฐ์ ์ฐ์ฐ ๊ธฐํธ์ ๋ฐ๋ผ operation ์ ํ...?
switch (operationInput) {
case "+" :
calculator.setOperation(new AddOperation());
break;
case "-" :
calculator.setOperation(new SubstractOperation());
break;
case "*" :
calculator.setOperation(new MultiplyOperation());
break;
case "/" :
calculator.setOperation(new DivideOperation());
break;
}
// ํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ค๋ค. (Parser ๊ฐ์ฒด)
return this;
}
public double executeCalculator () {
// calculator ๊ณ์ฐ ์, firstNumber, secondNumber ๋ชจ๋ int ํ์
์ด๋ฏ๋ก ํ๋ณํ ํด์ค์ผํ๋ค.
return calculator.calculate();
}
}
์ค๋ ํ๋ฃจ ์ ๋ฆฌโ๏ธ
๊ต์ก์ ์์ํ๊ณ ์ฒ์์ผ๋ก ์ฃผ์ด์ก๋ ๊ณ์ฐ๊ธฐ ๊ณผ์ ๋ฅผ ๋ ๋๋ฆ๋๋ก ์ ํด๊ฒฐํ ๊ฒ ๊ฐ๋ค. ๊ณผ์ ๋ฅผ ์งํํ๋ฉด์ ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋๋ ๋ดค์ง๋ง ๊ทธ๋ถ๋ค์ ์ฝ๋์ ๋์ ์ฝ๋์ ์์ค ์ฐจ์ด๊ฐ ์์์ง๋ง ํฐ ์์ฌ์ ๋ถ๋ฆฌ์ง ์๊ณ ๋ด๊ฐ ํ ์ ์๋ ์ ์์ ๋ค ๊ตฌํํ๋ค๋ฉด ์ฑ๊ณตํ ๊ณผ์ ๋ผ๊ณ ์๊ฐํ๋ค. ๋ด์ผ ๋ ๋ค๋ฅธ ๊ณผ์ ๊ฐ ์ฃผ์ด์ง๋๋ฐ ์ด์ฌํ ๋ด๊ฐ ํ ์ ์๋ ์ ์์๋ ๋ค ๊ตฌํํด๋ด๊ณ ๋ง๊ฒ ๋ค!!
์ค๋ ์ ์ ๋ค์ด๋จ๋ Java ๋ฌธ๋ฒ ์ข
ํฉ๋ฐ 4์ฃผ์ฐจ์ ์์ ๋ฅผ ๋๋์ด ํด๊ฒฐํ๋ค!!!!!!!!
๊ทธ๋ ๋น์์๋ ํด๋์ค๋ฅผ ํ์คํ๊ฒ ์ดํดํ์ง ๋ชปํ๊ณ ๊ฐ์ฒด ์งํฅ์ ๋๋๋ ์ ํ ๋ชฐ๋๋ ์ํ๋ผ์ ์์ ์ค๋ช
์ ์ฝ๋ ๋์ ๋จธ๋ฆฌ์ ๋ฌผ์ํ๊ฐ 1,000,000๊ฐ ์ ๋๋ ์๊ฒผ๋ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ์ค๋์ ๋๋ ํด๋์ค๋ ์ดํดํ ์ํ์ด๊ณ ๊ฐ์ฒด ์งํฅ์ ๊ฐ๋
๋ ์์ฃผ ์ด์ง์ ์๋ฆฌ์ก๊ณ ์์ด์ ๊ฐ์์์ ์ค๋ช
ํด์ค ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ฉด์ ์ด์ฌํ ์ฝ๋๋ฅผ ์์ฑํ๋ค! ์ด์ฌํ ์์ฑํ๋ ๋์ค Parser ํด๋์ค์ ๋ฉ์๋์์ ๋ง์ง๋ง ๋ฐํํ๋ ๋ถ๋ถ์์ ๋งํ๋ค...... ์๋ฌด๋ฆฌ ์๊ฐํด๋ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์์ง ๋ ์ค๋ฅด์ง ์์๋ค...
๊ทธ๋์ ๋๋ณด๋ค ์ง๋๊ฐ ๋น ๋ฅธ ํ์ฅ๋๊ป ๋ฌผ์ด๋ดค๊ณ ์์ฃผ ์ฝ๊ณ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ ์ ์์๋ค. return this....... ํ์ฌ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ฃผ๋ฉด ๋๋๋ ์์ฃผ ๊ฐ๋จํ ๋ฌธ์ ์๋ ๊ฒ์ด๋ค.. ์ญ์ ๊ณ ๋ฏผํด๋ ์ํ๋ฆด ๋๋ ๋ฌผ์ด๋ณด๋ ๊ฒ์ด ๋ง๋ ๊ฒ ๊ฐ๋ค!!
๋ด์ผ๋ถํฐ๋ ๋ ๋ค๋ฅธ ๊ณผ์ ๊ฐ ์ฃผ์ด์ง๊ณ , ๋์๊ฒ๋ ์์ง 5์ฃผ์ฐจ ๊ฐ์๋ค์ด ๋จ์์๋ค!! ์ฐจ๊ทผ์ฐจ๊ทผ ํ๋์ฉ ํด๊ฒฐํด๋๊ฐ๋ฉด์ ๊ณ์ ์ฑ์ฅํ ์ ์๋๋ก ๋
ธ๋ ฅํด์ผ๊ฒ ๋ค.
๋ด์ผ ํ๋ฃจ๋ ํ์ดํ
!!!!!!!!!!!!!!!!!!
๋ด์ผ ๊ณํโฐ
์ค์
- ์๋ก์ด ๊ณผ์ ๋ฐ์
- ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ (SQL, Java) 1๋ฌธ์ ํ์ด & ๋ธ๋ก๊ทธ ์ ๋ฆฌ
์คํ
- ์๋ก์ด ๊ณผ์ ๋์ ๐ค
- TIL ๋ธ๋ก๊ทธ ์์ฑ
'โ๏ธ Today I Learned(TIL) > ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 12 (1) | 2024.11.23 |
---|---|
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 11 (1) | 2024.11.22 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 9 (0) | 2024.11.20 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 8 (4) | 2024.11.19 |
ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ด_Day 5 (7) | 2024.11.15 |