분류 전체보기(313)
-
[IntroToDocker] JetBrains Intro to Docker[Part 2 Networking, Docker Compose]
JetBrains Intro to Docker[Part 2 Networking, Docker Compose] Web Application + Docker 웹 애플리케이션과 DB를 각각 Docker Container로 생성한 뒤 Docker compose를 활용해 서비스를 실행시켜 볼겁니다. Creating the DB Container docker pull mysql docker run --name app-db -d -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=myDB mysql M1 installing mysql Error M1 맥북은 docker pull mysql 명령어를 실행하면 ARM64를 지원하지 않기 때문에 오류가 발생합니다. 이때 docker p..
2022.01.03 -
[IntroToDocker] JetBrains Intro to Docker[Part 1 with Java Examples]
JetBrains Intro to Docker[Part 1 with Java Examples] 도커 컨테이너는 왜 필요할까요? A,B,C라는 팀원이 있는 스타트업이 있다고 해봅시다. A는 Java 8을, B는 Java 11을 사용할 때 매번 설정을 다시 해서 컴파일 실행해줘야 되는 번거로움이 발생합니다. 여기에 DB, AppServer(Apache, Openliberty...)가 추가된 Web App이라면 B는 AppServer, DB를 갖춰야 컴파일 실행할 수 있습니다. Java 버전 싱크로 맞춰야겠죠. 문제는 C,D,E... 더 많은 사람들이 실행할 필요가 있단 것입니다. 컨테이너는 뭔가요? 컨테이너는 App과 Dependencies를 패키지로 만들어 실행시켜주는 컴포넌트 입니다. 컨테이너들은 Shi..
2022.01.03 -
[패캠강의] 팩토리 메서드 패턴
Factory Method Pattern 하위 클래스에게 위임하는 패턴 중 하나입니다. 팩토리를 하나 두고, 들어오는 매개 변수에 따라서든 Map에 해당되는 keyword에 따라서든 인스턴스를 다르게 반환해줄 수 있는 패턴입니다. 팩토리에서 조건이나 인스턴스 관리를 맡아하면 하위 클래스는 변경에 대처할 부분이 적어지는 장점이 있습니다. JDK에서 사용되는 팩토리 메서드는 getInstance()가 java.util.Calendar, NumberFormat, ResourceBundle에서 사용되고 있습니다. 레퍼 클래스 Integer, Boolean etc 들에서 value들을 측정하기 위해 valueOf() 메서드를 사용할때도 팩토리 메서드 패턴을 사용합니다. public class Calendar { ..
2022.01.01 -
[패캠강의] 1장_객체지향의 설계
디자인 패턴에 대해 알아봅시다 디자인 패턴을 잘할 수 있는 방법? 경험, (삽질)이 디자인 설계를 실제로 늘 수 있게 도와줍니다. 설계를 여러번 실패하면서 코드를 짜봐야 알게됩니다. 객체지향설계 객체의 blue print가 클래스, 기능들이 메서드입니다. 추상화 어떤 영역에서 필요한 속성이나 기능을 추출하는 작업 인터페이스 객체를 클라이언트에 필요한 기능만 오픈할 수 있고 책임을 전달할 수 있는 매개? 필요한 기능만을 오픈한다는 건 객체지향의 캡슐화와 연관되어 있습니다. 상속성 일반적인 객체보다 구체적인 객체를 말합니다. 상위 클래스를 상속한 하위 클래스는 필수 기능들을 재정의 할수도 있습니다. 다형성 같은 코드가 다른 결과를 만들어 내는 메서드입니다. 응집도, 결합도 응집도가 높은 클래스는 단일 책임의..
2021.12.31 -
[Node.js] Node 17버전 node-sass 에러
Node 17 node-sass 에러 Vue에서 사용한 라이브러리를 위해 Node 버전을 17으로 업데이트 하고 빌드했을 때 sass가 없다는 에러가 발생했습니다. 해결은 14 버전으로 낮추는 방법으로 됐지만 원인을 파악해봤습니다. Stackoverflow에서도 npm install node-sass 라던지 rebuild 커맨드를 해결방법으로 제시해주고 있습니다. node-sass란? scss 파일을 미들웨어를 통해 css파일로 빠르게 컴파일 해주는 라이브러리 입니다. 왜 node 버전에 따라서 node-sass 에러가 날까? npm node-sass 문서를 보면 답이 나와있습니다. 사용빈도가 줄어서인지 Node 17 버전부턴 LibSass is Deprecated 되었기 때문입니다. 대체는 DartSa..
2021.11.15 -
[AWS] AWS VPC 작동원리(서브넷)
AWS VPC 작동원리(서브넷) 서브넷은 하나의 AZ에 생성 가능합니다. public 서브넷은 외부 인터넷으로 연결이 가능하지만 private 서브넷은 VPC 내부에서만 연결이 가능합니다. Internet Gateway는 인터넷으로 나가기 위해 거치는 통로라고 생각하면 됩니다. route table은 유입된 트래픽을 어디로 보낼지 알려주기 위해 저장하는 테이블 입니다. 가령 내부 private subnet(local)로 접근할 수 있는 ip를 설정해주거나 igw(Internate GateWay)를 통해 외부로 보낼 수 있는 ip 대역을 설정할 수 있습니다. NACL과 SG는 보안에 관련된 네트워크인데 전자는 stateless, 후자는 stateful이란 차이가 있습니다. 따라서 특정 ip를 차단하고 싶다..
2021.10.31