Chapter01 74

[Spring Boot] Backend Frontend 같이 빌드하기

팀 프로젝트를 빌드해야한당 후후,.,, 그런데,,  task buildFrontend(type: Exec) { workingDir file('src/main/frontend') commandLine 'npm.cmd', 'install' commandLine 'npm.cmd', 'run', 'build'}         빌드를 하면 이런 화면이 뜬다ㅠㅠㅠㅠㅠ    ( 근데 아무리 검색해도 이 화면은 안나오는데 나 같은 바보가 정말 나 한 명 인건가,,? 이런 바보는 없는거야 나 말고 한 명도? )        영문도 모르고 뭐가 잘못된건가얼레벌레 한참을 헤맸고,,,   우리 프로젝트 구조상백엔드와 프론트엔드가 같이 빌드되지 않고있다는걸 알게되었다    아래와같이 build.gradle파일을..

Chapter01/deploy 2024.03.14

[ java ] 객체지향 개발 SOLID 5대 원리 + 예시코드

객체지향: 문제에 대해 데이터의 관점에서 이 프로그램을 바라보며 데이터를 가지고 있는 객체들 간의 관계를 정의해서 프로그램을 만든다. (cf.C는 절차지향적 언어임)  SRP 단일책임의 원칙 ,OCP 개방폐쇄의 원칙, LSP 리스코브 치환의 원칙 , ISP 인터페이스 분리의 원칙, DIP 의존성역전의 원칙 다섯가지 원칙의 초성을 따서 SOLID원칙 라고부는데 이 원칙에 걸맞는 코드는 결합도가 느슨하고 응집력이 높은 코드가 됩니다 !    소프트웨어 공학에서 모듈화는 응고결저 라고 암기하죠?결합도가 높을수록 응집도가 낮을수록 재사용성과 유지보수성이 높아집니다!   모든 상황에 이 원칙들을 적용하는데는 무리가 있을 수 있으나가독성좋고 재사용성이 높은 코드를 짜기 위해서 알아야하는 SOLID 원칙에 대해 알아..

Chapter01/Java 2024.03.13

[ Java ] 클래스 정의

클래스는 객체의 속성을 정의하고 이를 인스턴스화라고도 한다.Field (속성) + Method (행위) + Constructor (생성자) ● 필드 정의Static final private String name;                        접근지정자  타입    필드명 변수는 데이터를 담는 그릇예약어 사용 불가, 소문자로 시작해야함, 숫자 가능 , 특수문자 일부 가능 등 규칙있음.● 생성자 정의: 객체를 인스턴스화 할 때 가장 먼저 호출되는 메서드-> 클래스와 객체 간 새로운 인스턴스가 만들어질 떄 클래스가 가지고 있는 기본 속성에 대해 초기화값을 만들어주어야함. 생성자이름 = 클래스이름이고, 매개변수를 다르게해서 여러 개 정의할 수 있다. (오버로딩참고!) 반환타입은 없다JAVA의 모든 ..

Chapter01/Java 2024.03.13

[ Spring Boot] Spring Boot Initializr

안녕하세요!프로젝트 initialize 하는 방법을 알아보아요 오늘!  https://start.spring.io/   링크로 접속 시 위와 같은 화면을 볼 수 있궁   먼저 좌측 부분   그리고 우측에 ADD DEPENDENCIES 를 클릭해 원하는 모듈을 설치할 수 있다    이처럼 많은 종류의 모듈이 있고, 필요한 것만 골라서 추가하면 된다   Lombok: 거의 필수적으로 들어간다고 보면 됨. 클래스에 어노테이션을 사용해 @getter, @setter와 같은 패턴 메소드를  사용할 수 있다. 클래스를 간단하게 만들어주는 좋은 툴 ! Spring Web: 내장 Tomcat과 같은 웹 서비스 만들 때 중요한 모듈임. MVC 패턴구현에 필요한 기능들이 들어있으며 Rest API 를 만들 때 필요함!  ..

[ Docker ] Docker Desktop 실행 에러

프로젝트 중 docker를 사용했는데  docker Desktop 실행 시     이렇게 Docker Engine stopped 라는 문구가 뜨고     Docker Desktop - Unexpected WSL error 라는 경고창이 뜨면서 실행되지 않았다  그래서 뭐가 문제인가 싶어이것 저것 다 해봤다,, 시도한 것들은  1. 자바 버전문제 ?-> JAVA HOME 다시 설정, JAVA 재설치2. WSL 문제 ? -> WSL2 재설치3. Window 문제 ?-> 재부팅4. Docker Desktop 프로그램 문제 ?-> 관리자권한 실행 다 아니었고요~~~  등등 여러가지 써칭을 하다가 알아낸것!  윈도우에서 도커 사용 시 가상화 설정이 되어있어야 했다    윈도우에서 도커 사용 시 가상화 설정 방법!..

Chapter01/Docker 2024.03.06

[ Java ] Overloading 개념 + 예시코드

: 메소드 이름을 같게하고, 파라미터(타입, 순서, 개수)를 달리해 여러 메소드를 정의하는 방법  제가 예시 코드를 만들어보았어요 car라는 이름의 메소드는 파라미터를 색상만 갖는 경우, 색상과 유형을 갖는 두 가지 경우가 있습니다. 파라미터에 따라서 자동차의 가격을 반환하는데! car(String color, String type) 메서드는 주어진 색상과 유형에 따라 자동차의 가격을 반환합니다.car(String color) 메서드는 색상만 주어질 경우 기본 유형인 "sedan"의 가격을 반환합니다. public class Car { private Integer car(String color, String type) { int price; switch (ty..

Chapter01/Java 2023.11.07

[ cs지식 ] 콜드부팅 웜부팅

찾아보게 된 이유,, 외근 나가계신 팀장님의 메신저,,, 컴퓨터를 켜서 작업할 수 있는 초기 상태로 만드는 것을 부팅이라고한다. 부팅 (booting)의 사전적 의미는 '장화를 신기다' 에서 유래된 말인데, 농촌에서 일을 시작하기 전 장화를 신는 행위 처럼 컴퓨터를 처음 동작시킨다 하여 이 과정을 부팅이라고 한다. 부팅 방식 중 웜 부팅, 콜드 부팅이 있는데 램의 온도에서 따온 명칭이라고 한다. - 웜 ( Warm ) 부팅 = 웜리붓 컴퓨터가 재부팅 될 때 까지 아직 램이 따뜻한 상태 라고해서 웜부팅 이라고 한다. 리붓과정에서 시스템을 검사하는 과정을 생략하여 부팅 시간이 빠르다. 컴퓨터에 무리를 주지 않고 재부팅 할 때 쓰는 방법이다. - 콜드 ( Cold ) 부팅 = 콜드리붓 램을 차갑게 만들어 안에..

[cs지식] static

클래스의 인스턴스가 아닌 클래스에 속하며 클래스의 변수, 메서드 등을 공유하는데 사용됨. 이를 통해 해당 클래스로 만들어지는 객체 사이에서 중복되는 메소드, 속성을 효율적으로 정의할 때 쓰임. Private Static final : 값을 참조할 수 없어 처음 값이 끝까지 불변임. 재할당하지 못하고 메모리에 한 번 올라가면 같은 클래스 내부의 전체 필드, 메서드에서 공유함. Private final : 직접적으로는 아니지만 생성자를 통해 참조 가능함. 재할당하지 못하고 해당 필드, 메서드 별로 호출할 때 마다 새로운 값이 할당된다 = 인스턴스화

[ Docker ] Docker Volume

Docker Volume을 쓰는 이유는 ?소스코드를 변경했을 때 변경된 것이 화면에 반영되려면이미지를 다시 빌드하고 컨테이너를 실행해야 함.이 것을 해결하기 위해서 Volum을 사용함.docker volume은 소스를 변경했을 때 이미지를 다시 빌드하지 않아도 변경한 소스부분이 어플리케이션에 반영되는 것 !  Copy와 다른 점파일을 컨테이너 안에 넣을 때 copy를 사용/이미지를 다시 빌드해야 컨테이너에 또 복사를 할 수 있어서 소스코드를 변경할 때 마다 이미지부터 변경해야 하니까 번거로움 / Volume은 계속 매핑을 한다 volume 컨테이너에서 로컬로 매핑copy로컬에서 컨테이너로 복사 볼륨을 사용해 어플리케이션을 실행하는 법Docker run –p 3000:3000 –v /usr/src/app/..

Chapter01/Docker 2023.10.18