Lombok์ผ๋ก Java ์ฝ๋ ์์ฑ ์๋๋ฅผ ๋์ด๋ ๋ฐฉ๋ฒ
์ถ์ฒ:
Dev.to ์ฐ๋ฆฌ๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์
์ ๋์ผํ ์์ฉ๊ตฌ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
- ๊ฒํฐ;
- ์ธํฐ;
- ๋์์ด๋;
- ๋น๋ ๋์์ธ ํจํด;
- ๊ทธ๋ฆฌ๊ณ ํจ์ฌ ๋โฆ
์ด๋ฐ ์ผ์์ ์ธ ์ผ์ ๋๊ตฐ๊ฐ์๊ฒ ๋งก๊ธธ ์ ์๋ค๋ฉด ์ข์ง ์์๊น์? ์ด๊ฒ์ด ๋ฐ๋ก ๋กฌ๋ณต์ด ์ฐ๋ฆฌ๋ฅผ ๋์ธ ์ ์๋ ๊ณณ์
๋๋ค.
๊ทธ๋ ๋ฌด์์ ํ๊ณ ์๋์?
์ด๋ ์ด๋ฌํ ์ผ๋ฐ์ ์ธ ์์
(getter, setter ๋ฑ)์ ๋ํ ๋ฐ์ดํธ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ด๋ฅผ .class์ ๋ฃ์ด ์ฐ๋ฆฌ๊ฐ ์์ฑํ๋ ์ฝ๋์์ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
์ด๋ป๊ฒ ์ด๋ฐ ์ผ์ด ๋ฐ์ํ๋์?
Maven ๋น๋์ Lombok ์ข
์์ฑ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ํ๋ ํด๋์ค, ์ผ๋ถ Lombok ์ฃผ์์ด ์๋ ํ๋์ ์ฃผ์์ ๋ฌ์์ผ ํฉ๋๋ค. ์ฝ๋๋ฅผ ์ดํด๋ณด์!
๋กฌ๋ณต ์ ์ธ:
public class Human {
private int id;
private String name;
private int ageInYears;
public Human() { }
public Human(int id, String name, int ageInYears) {
this.id = id;
this.name = name;
this.ageInYears = ageInYears;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAgeInYears() {
return ageInYears;
}
public void setName(String name) {
this.name = name;
}
public void setAgeInYears(int ageInYears) {
this.ageInYears = ageInYears;
}
public Human id(int id){
this.id = id;
return this;
}
public Human name(String name){
this.name = name;
return this;
}
public Human ageInYears(int ageInYears){
this.ageInYears = ageInYears;
return this;
}
@Override
public String toString(){
return String.format("Human(id=%s, name=%s, ageInYears=%s)",
this.id, this.name, this.ageInYears);
}
}
์ด์ Lombok์ ์ฌ์ฉํด ๋ณด๊ฒ ์ต๋๋ค.
import lombok.*;
@Getter @Setter
@AllArgsConstructor @NoArgsConstructor
@Builder @ToString
public class Human {
@Setter(AccessLevel.NONE)
private int id;
private String name;
private int ageInYears;
}
Maven ์ข
์์ฑ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
<scope>provided</scope>
</dependency>
์ฐธ๊ณ : ๋ฒ์ ๋ถ๋ถ์ ์ต์ Lombok ๋ฆด๋ฆฌ์ค์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ฉ๋๋ค.
์ฐ๋ฆฌ๋ ๋ฌด์์ ํ๋์?
์ฐ๋ฆฌ๋ ์ฃผ์์ ์ฌ์ฉํ์ฌ getter, setter, ์์ฑ์, Builder ๋์์ธ ํจํด ๋ฐ toString ๊ตฌํ์ ๋ง๋ค์์ต๋๋ค. id ํ๋์ setter์ ๊ฐ์ ์ผ๋ถ ์ฃผ์์ ๋ณ๊ฒฝํ ์๋ ์์ต๋๋ค. ์ก์ธ์ค ์์ค์ ์์์ผ๋ก ์ค์ ํ์ต๋๋ค. ์ด๋ ์ด์ ๋ํ ์ค์ ์๋ฅผ ์์ฑํ์ง ์์์ ์๋ฏธํฉ๋๋ค.
ํ ๋งํ ๊ฐ์น๊ฐ ์์๋์?
์ฐ๋ฆฌ๋ Lombok์ ์ฌ์ฉํ์ง ์์ ๋
52์ค์ ์ผ์ต๋๋ค .
Lombok์ ์ฌ์ฉํ์ฌ 8์ค์ ์์ฑํ์ต๋๋ค . Lombok์ ์ฝ๋ ํฌ๊ธฐ๋ฅผ
๊ฑฐ์ 4๋ฐฐ๋ก ์ค์ด๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค . ๊ต์ค์ ๋ณ์๊ฐ ๋ ๋ง์ผ๋ฉด ์ด ์ ์๊ฐ ํฅ์๋ ์ ์์ต๋๋ค. Lombok์๋ ์ ์ฉํ ์ ๋ณด๊ฐ ๋ง์ด ํฌํจ๋ ๋ ๋ง์ ์ฃผ์์ด ์์ต๋๋ค. ์ด๋ฅผ ๋ณด๋ ค๋ฉด
์น์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ์ธ์ .
๊ฒฐ๋ก
Lombok์ ์์ ์ธ๋ถ ์ฌํญ(getter/setter/constructors/์ผ๋ฐ ๋์์ธ ํจํด ๋ฐ ๊ธฐํ Java ๊ตฌ์ฑ)์ ๋ํด ๊ฑฑ์ ํ์ง ์๊ณ ๋น์ฆ๋์ค ์ฝ๋์ ์ง์คํ ์ ์๋๋ก ๋์์ค๋๋ค.
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ํ ๊ต์ก ๋ชฉ๋ก
์ถ์ฒ :
DZone ๋ด ์น๊ตฌ์๊ฒ๋ ๊ณง ๊ณ ๋ฑํ๊ต๋ฅผ ์กธ์
ํ ์๋ค์ด ์์ต๋๋ค. ๊ทธ๋ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์กฐ๊ธ ์๊ณ ์์ผ๋ฉฐ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋์ด์ผ ํ ์ง ๊ณ ๋ฏผํ๊ณ ์์ต๋๋ค. ์ต๊ทผ์ ๊ทธ๋ ๋์๊ฒ โ๋ค์์๋ ๋ฌด์์ ๊ฐ๋ฅด์ณ์ผ ํฉ๋๊น?โ๋ผ๊ณ ๋ฌผ์์ต๋๋ค.
์ ๊ฐ ์ฒ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๊ธฐ ์์ํ์ ๋, โ๋ค์์ ๋ฌด์์ ๋ฐฐ์์ผ ํ ๊น์?โ๋ผ๋ ์ง๋ฌธ์ ๋ํ ๋ต์ ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ , ์๋ก์ด ์ธ์ด, ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ด ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๊ฒฝ๋ ฅ์ ์์๊ฐ๋ฉด์ ๋ง์์ด ๋ฐ๋์์ต๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ธฐ์ ์ ์ฐ๋งํ๊ณ ์๋ก์ด ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ ์ธ์๋, ์ผ์ฌ ์ฐฌ ํ๋ก๊ทธ๋๋จธ๋ ๊ด๋ จ ๋ถ์ผ์์ ๊ณต๋ถํด์ผ ํฉ๋๋ค(์ด์ ๋ํด์๋ ์๋์์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค). ์ด ๊ธ์์ ๋๋ ํ๋ก๊ทธ๋๋จธ๋ค์๊ฒ ๋ง์คํฐํ๋ผ๊ณ ์ถ์ฒํ๊ณ ์ถ์ ๊ธฐ์ ๋ชฉ๋ก์ ๋ชจ์ผ๊ณ ์ถ์ต๋๋ค. ๋ด ๋ชฉํ๋ ํ์ฌ ์ง์์ ๋ชจ๋ ๋์ดํ๊ฑฐ๋ ํํ ๋ฆฌ์ผ์ ๋ํ ๋งํฌ๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์๋๋๋ค. ๋์ , ๋๋ ์ด๋ณด์๋ค์ด ํ๋ก๊ทธ๋จ ์์ฑ์ ๋์์ด ๋ ์ ์๋ ์ผ๋ จ์ ๋๊ตฌ, ๊ธฐ์ ๋ฐ ๊ธฐ์ ์ ์ต์ํด์ง๋๋ก ๋๊ณ ์ถ์ต๋๋ค.
๋ช
๋ น์ค
๋๋ ์ด๋ค ๊ธฐ์ค์์๋ ์ด๋ฏธ "๋์๋ค"๊ณ ๊ฐ์ฃผ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋น์ ์ปดํจํฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ DOS์ ์์์ ๋ช
๋ น์ ์
๋ ฅํ๋ ๊ฒ์ ์๋ฏธํ์ต๋๋ค. ๊ทธ ์ดํ๋ก ๋ง์ ๊ฒ์ด ๋ฐ๋์์ต๋๋ค. ๋ช
๋ น์ค์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ง์ ๋๊ตฌ๋ ๋ช
๋ น์ค ์ธํฐํ์ด์ค๋ง ์ ๊ณตํฉ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ช
๋ น์ค์์ ๋ ๋น ๋ฅด๊ฒ ์์
ํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ์์
์ ์ํํ ์ ์์ด์ผ ํฉ๋๋ค.
- ๋๋ ํฐ๋ฆฌ ์ํ.
- ํ์ผ ๊ด๋ฆฌ(๋ณต์ฌ/์ด๋/์ญ์ ).
- ์์ค ์ฝ๋ ์ปดํ์ผ ๋ฐ/๋๋ ์คํ.
Windows๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ฒด ๊ฐ์ ๋จธ์ ๋์ WSL2๋ฅผ ์ฌ์ฉํ์ฌ Linux์ ์ต์ํด์ง๋ ๊ฒ์ด ์ข์ต๋๋ค. Mac์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ OS์ ๋ด์ฅ๋ ์
ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Linux ๊ฐ์ ๋จธ์ ์ ์ค์นํ์ฌ ์ข์ ๊ฒฝํ์ ์ป์ ์๋ ์์ต๋๋ค.
๋ฒ์ ๊ด๋ฆฌ
๋ฒ์ ์ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ค ์ฝ๋๋ฅผ ์ถ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ฒ์ ๊ด๋ฆฌ ์ํํธ์จ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก์ ํธ์ ๊ฐ์ ๋ด์ญ์ ์ถ์ ํ ์ ์์ผ๋ฉฐ ์ด๋ ๋๋ฒ๊น
์ ํ์์ ์ผ ์ ์์ต๋๋ค. ๋ํ ์ฝ๋๋ฒ ์ด์ค์์ ๊ณต๋ ์์
์ ๋ ์ฝ๊ฒ ์ํํ ์ ์์ต๋๋ค.
GitHub ์
GitLab์ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ํธ์คํ
ํ๋ ์ธ๊ธฐ ์๋ ๋ ์ฌ์ดํธ์
๋๋ค. ๋ ๋ค Git์ ์ฌ์ฉํฉ๋๋ค(์ด๋ฆ์์ ์ ์ ์๋ฏ์ด). Git์ ์์ฆ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ๋๊ตฌ์ด๋ฏ๋ก GitHub ๋๋ GitLab์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ก ์ฌ์ฉํ์ฌ ๋ช
๋ น์ค์์ Git์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ตํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋คํธ์ํฌ
์ค๋๋ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋จ์๋ ์ต์ํ ์ผ์ ์์ค์ ๋คํธ์ํน์ด ํ์ํฉ๋๋ค. ๋คํธ์ํฌ ์๋ ๋ฐฉ์์ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ต์ํ IP ์ฃผ์, ํฌํธ, ํ๋กํ ์ฝ ๋ฑ์ ๊ธฐ๋ณธ ์ฌํญ์ ์ดํดํด์ผ ํฉ๋๋ค. ๋ฐฉํ๋ฒฝ, ๋ก๋ ๋ฐธ๋ฐ์ฑ, ํ๋ก์์ ๋ํด ๋ฐฐ์ฐ๋ฉด ๋์ค์ ๋์์ด ๋ ๊ฒ์
๋๋ค. ํ๋ก๊ทธ๋๋ฐ ๊ฒฝ๋ ฅ๋ฟ๋ง์ด ์๋๋๋ค. ๋์ํฉ๋๋ค. "Wi-Fi๊ฐ ์๋ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์
๋๊น?"๋ผ๋ ์ง๋ฌธ์ ์ดํดํ๋ ๊ฒ์ด ์ข์ต๋๋ค. AWS, Azure ๋ฑ ํด๋ผ์ฐ๋ ์๋น์ค์ ๊ธฐ๋ณธ๋ ๋ฐฐ์๋ณด๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค. ์๋ธ๋ท, ๋ก๊ทธ์ธ ๊ท์น, ๊ฒ์ดํธ์จ์ด๋ฅผ ์ฌ์ฉํ์ฌ AWS Virtual Private Cloud๋ฅผ ์ค์ ํ๋ฉด ๋คํธ์ํน ๊ฒฝํ์ ์ป์ ์ ์์ต๋๋ค.
ํ
์คํธ
์ข์ ์ํํธ์จ์ด๋ฅผ ์์ฑํ๋ ๋ฐ ์์ด ํ์์ ์ธ ๋ถ๋ถ์ ์ํํธ์จ์ด ํ
์คํธ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๋ ๊ฒ์
๋๋ค. ์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋๋ฐํ๊ณ "ํ
์คํธ"ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ๋จ์ ๋ฐ ํตํฉ ํ
์คํธ๋ ์์
ํ๋ ๊ฑฐ์ ๋ชจ๋ ์ํํธ์จ์ด์ ์ ์ฉํ ์ ์๋ ํ์ ๊ธฐ์ ์
๋๋ค. ์ฒ์์๋ ํ
์คํธ๊ฐ ์ง๋ฃจํด ๋ณด์ผ ์ ์์ง๋ง ์ด ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ณ ์์ ๊ฐ์ ๊ฐ๊ณ ์์
ํ ์ ์์ต๋๋ค.
์ง์์ ์ธ ํตํฉ
์ง์์ ํตํฉ(CI)์ ํ
์คํธ์ ๋ฒ์ ์ ์ด๋ฅผ ๊ฒฐํฉํฉ๋๋ค. ์๋ก์ด ์ฝ๋ ๋ฐ๋ณต์ ์์ฑํ ๋๋ง๋ค ์๋์ผ๋ก ์คํ๋๋ ํ
์คํธ ์ธํธ๊ฐ ์์ต๋๋ค. CI ๋๊ตฌ๋ ์ง๋ 10๋
๋์ ํฌ๊ฒ ๊ฐ์ ๋์์ต๋๋ค. GitHub์ GitLab์๋ CI ์๋ฃจ์
(๊ฐ๊ฐ GitHub Actions ๋ฐ GitLab CI)์ด ๋ด์ฅ๋์ด ์์ด ์ฝ๊ฒ ์์ํ ์ ์์ต๋๋ค. ํ
์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก CI๋ฅผ ์์ํ๋ ๊ฒ๋ ์ด๋ ค์ธ ๊ฒ์
๋๋ค. ํ์ง๋ง ์ผ๋จ ๊ธฐ๋ณธ ์ฌํญ์ ๋ฐฐ์ฐ๋ฉด ๋ฌธ์ ๋ฅผ ํจ์ฌ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์ต๋๋ค. ์ฌ์ฉ ์ค์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ์์ ๊ฐ ํฌํจ๋ ์์ธํ ํํ ๋ฆฌ์ผ์ ์ฐพ์๋ณด๋ ๊ฒ์ด ์ข์ต๋๋ค.
๊ธ์ฐ๊ธฐ ๋ฅ๋ ฅ
์๋ง๋ ์ ๊ฐ ํ๋ก๊ทธ๋๋จธ๋ก ์ผ์ ์์ํ์ ๋ ๊ฐ์ฅ ๊ณผ์ํ๊ฐํ๋ ๋ถ์ผ๊ฐ ๋ฐ๋ก ์ด ๋ถ๋ถ์ผ ๊ฒ์
๋๋ค. ๋๋ ๊ณผ์ฅํ์ง ์์ต๋๋ค. ๋๋ ์ด์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์์ ์ ๋ฌด๊ธฐ๊ณ ์ ์ถ๊ฐํ ์ ์๋ ๊ฐ์ฅ ์ค์ํ ๊ธฐ์ ์ ๊ธ์ฐ๊ธฐ๋ผ๊ณ ๋ฏฟ์ต๋๋ค. ์ข์ ๊ธ์ฐ๊ธฐ ๋ฅ๋ ฅ์ ์ต์ํ์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์์ด๋์ด๋ฅผ ๋ช
ํํ๊ฒ ์ค๋ช
ํ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ธ ๋๋ ๋๊ฐ ํผ์ ์์
ํ๋ฏ๋ก ๊ธ์ ์ธ ํ์๊ฐ ์์ต๋๋ค. ํ์ง๋ง ํ์ผ๋ก ์์
์ ์์ํ๋ ค๋ฉด ๋ค์์ ์์ฑํด์ผ ํฉ๋๋ค.
- ์ ์ ์๋ฅ ๋น์น;
- ๋ฒ๊ทธ ์ ๊ณ
- ๊ธฐ๋ฅ ์์ฒญ;
- ๊ณ ๊ฐ ์ ์
- ์๊ตฌ ์ฌํญ์ด ์๋ ๋ฌธ์
- ์ด๋ฉ์ผ(๋ง์ ์ด๋ฉ์ผ!)
- ๋ฌธ์ ๋ฉ์์ง
- ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ(์๋ง๋)
๊ธ์ฐ๊ธฐ๋ฅผ ๋ฐฐ์ฐ์ญ์์ค. ์ด๋. ๊ธ์ฐ๊ธฐ ๊ฐ์ข๋ฅผ ์๊ฐํ์ธ์. ๊ทธ๊ฒ์ ๋น์ ์ ๋จ์ ์์ ๋์ ๋ฐฐ๋น๊ธ์ ์ง๋ถํ ๊ฒ์
๋๋ค. ๋ํ ์ ์ฝ๋ ๋ฒ์ ๋ฐฐ์ฐ์ญ์์ค. ์ ๊ฐ ์ฒ์ ์ ๋ฌธ์ฑ ๊ฐ๋ฐ์ ์์ํ์ ๋ ์๊ตฌ์ฌํญ ๋ฌธ์ ๋๋ฌธ์ ๊ฒ์ด ๋ฌ์ต๋๋ค. ๋๋ ์ด์ ์ด ์ ๋ณด๋ฅผ ์ฃผ์ ๊น๊ฒ ์ฐ๊ตฌํ๋ ๋ฐ ๋ช ์๊ฐ์ ํฌ์ํ๋ฉด ์๋ชป๋ ๊ฒ์ ๊ตฌ์ถํ๋ ๋ฐ ๋ญ๋น๋๋ ์๊ฐ์์ ์ ์ฝํ ์ ์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
์์ฆ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ํ๋๋ง ์๋ ๊ฒ๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ๊ฑฐ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ๋ ์ต์ํ ๋ช ๊ฐ์ง๋ฅผ ์๊ณ ์์ด์ผ ํฉ๋๋ค. ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ค๋ฉด ๋ค๋ฅธ ์ธ์ด๋ฅผ ๊ณต๋ถํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋๋ ๋ช ๊ฐ์ง ๋ค๋ฅธ ๋ฒ์ฃผ์ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฐ์ ์์ ๋ด๋ฆผ์ฐจ์:
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ. ๋๋ถ๋ถ์ ํ๊ต์์๋ ์ฌ์ ํ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ(FP)์ ๊ฐ๋ฅด์น์ง ์์ต๋๋ค. FP๋ ๋ค์ํ ์ ํ์ ์ฝ๋ ์์ฑ์ ๋ ์ฝ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๊ฐ๋ ฅํ ์ ๊ทผ ๋ฐฉ์์
๋๋ค. ๋๋ ํธ๊ฒฌ์ด ์์ง๋ง ๋ค๋ฅธ ๋ง์ ์ธ์ด๋ณด๋ค FP๋ฅผ ๋ ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ Haskell์ ๋ฐฐ์ฐ๊ธฐ ๊ฐ์ฅ ์ข์ ์ธ์ด๋ก ์ถ์ฒํ๊ณ ์ถ์ต๋๋ค. LISP ๊ณ์ด์ ์ธ์ด๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ๋ ์ ์ฉํฉ๋๋ค. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ฉด ๊ฑฐ์ ๋ชจ๋ ์ธ์ด๋ก ๋ ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์์คํ
ํ๋ก๊ทธ๋๋ฐ. ์์คํ
์ธ์ด๋ ํ์ ์์ค์ ์ํ๋ฉฐ ํ๋ก๊ทธ๋จ ์๋์ ๋ ์ ์ ์ดํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ฐ๊ตฌํจ์ผ๋ก์จ ์์คํ
์์ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ๋ฐฐ์ฐ๊ฒ ๋๋ฉฐ, ์ด๋ ๋ค๋ฅธ ์ธ์ด์ ๋ฌธ์ ๋ฅผ ์ดํดํ๊ณ ๋๋ฒ๊น
ํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ์ ์์ต๋๋ค. ๋๋ Rust๋ฅผ ๋ฐฐ์ฐ๊ณ C์ C++๋ฅผ ๋ฐฐ์ฐ๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
๊ฐ์ฒด ์งํฅ ์ธ์ด. Java์ C#์ ์ด ๊ณ์ด์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ๊ฐ์ฒด ์งํฅ ์ธ์ด์
๋๋ค. (์, Python๊ณผ C++๋ ์ธ๊ธฐ๊ฐ ์์ง๋ง ๋ณ๋๋ก ๊ฐ์กฐํ๊ฒ ์ต๋๋ค). OOP๋ ๋ง์ ์๋ก์ด ํจ๋ฌ๋ค์์ ๋์
ํ์ผ๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ ๊ทผ ๋ฐฉ์์ ์ ํธํ์ง๋ง ์๋ง๋ ์ฌ์ ํ ๊ฐ์ฅ ์ธ๊ธฐ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ ๊ทผ ๋ฐฉ์์ผ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์๋ ๋ฐฐ์ธ ๊ฒ์ด ๋ง์ผ๋ฉฐ ๊ฒฝ๋ ฅ์ ์์ผ๋ฉด์ ๊ฒฐ๊ตญ ๊ฐ์ฒด ์งํฅ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
์คํฌ๋ฆฝํธ ์์ฑ. Python๊ณผ Ruby๋ ๊ฐ์ฒด ์งํฅ ์ ํ๋ฆฌ์ผ์ด์
์ ํ๊ตฐ์์ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ ๊ฐ์ง ์คํฌ๋ฆฝํ
์ธ์ด์
๋๋ค. ํนํ Python์ DevOps, ๋ฐ์ดํฐ ๊ณผํ ๋ฑ ๊ด๋ จ ๋ถ์ผ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ๋ํ ์์ํ๊ธฐ ๋งค์ฐ ์ฌ์ด ๊ฐ๋จํ ์ธ์ด์
๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ
์ด๋ค ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ๋ค์์ ํฌํจํ์ฌ ํน์ ์ธ์ด๋ฅผ ๋์ด์๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ๊ธฐ์ ์ ์ต์ํด์ง๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก๊ทธ๋๋ฐ. SQL์ ๋ฐฐ์ฐ์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค. SQLite์ PostgreSQL์ ์ดํด๋ณผ ๋ ๊ฐ์ง ์คํ ์์ค DBMS์
๋๋ค.
- ๋ณ๋ ฌ์ฑ๊ณผ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ. ์ด๊ฒ์ ์ค๋๋ ์ ์ ๋ ์ค์ํด์ง๊ณ ์์ต๋๋ค.
- ๋คํธ์ํฌ ํ๋ก๊ทธ๋๋ฐ , ํนํ HTTP ์๋ฒ ๋ฐ ํด๋ผ์ด์ธํธ ์์ฑ.
- HTML/CSS/JavaScript๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ธํฐํ์ด์ค ๋ง๋ค๊ธฐ .
- JSON, YAML, ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ฑ์ ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ง๋ ฌํํฉ๋๋ค .
๊ฒฐ๋ก
์์ ์ ๋ณด๋ ๋ณต์กํด ๋ณด์ผ ์ ์์ต๋๋ค. ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ธฐ ์ํด ์ด ๋ชจ๋ ๊ฒ์ ๋ฐฐ์์ผ ํ๋ค๊ณ ์๊ฐํ ํ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์๋ชป๋ ๊ฒ์
๋๋ค. ํ๋ฅญํ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๋ ค๋ฉด ์๊ฐ๊ณผ ์ ๋ฌธ์ ์ธ ์ฐ์ต์ด ํ์ํฉ๋๋ค. ์์ง ํ๋ก๊ทธ๋๋ฐ์ ์์ํ์ง ์์๋ค๋ฉด ์ ์๋๋ฌผ ํ๋ก์ ํธ๋ถํฐ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์คํ ์์ค ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์๋ จ๋ ์ฝ๋๋ก๋ถํฐ ํธ์ํจ์ ๋๋ผ๊ณ ๋ฐฐ์ฐ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๋ง์ ํ๋ก๊ทธ๋๋จธ๋ ์์ ์ ์ง์์ ์ด๋ณด์์ ๊ณต์ ํ๋ ๊ฒ์ ์ข์ํฉ๋๋ค.
GO TO FULL VERSION