목록분류 전체보기 (29)
Day 개발 기록
더블 형식 같은 자유분방하게 다 나오는 소숫점말고 원하는 개수 만큼 소숫점 자리를 표현하려 한다. 우선 double 형식으로 숫자 저장해주고 print 할때 String.format으로 바꿔서 C에서와 비슷한 형태로 변경하면 된다. String.format( " %.원하는 소숫점 자리수f" , 더블형식숫자 ) 예를 들어서 소숫점 3자리까지 표현하고 싶다면 double num = 60.0; System.out.println( String.format("%.3f", num) ); 만약, 나누기 한 결과값을 표현하고 싶다면 (2.0)/3 같이 나눈 값 중에 하나를 실수로 표현해주고 출력해야한다. double n = (2.0)/3; System.out.println( String.format("%.3f",n) ..
그래프란? 개체 (object)들 간의 이진관계를 표현한 것이다. 그래프 요소 G = (V,E) V : 노드 정점라고 부른다. E : 노드 쌍을 연결하는 에지(edge) 혹은 링크(link) 앞으로 밑의 설명에서 n = |V| , m = |E| 라고 하자 그래프 종류 1. 무방향 그래프 (Undirected Graph) 에지간의 방향이 존재하지 않는 그래프 이다. ** 보편적으로 두개 노드 간의 에지는 1개만 있다고 보고, 자기 자신으로 가는 셀프 에지도 없다라고 본다. 2. 방향 그래프 (Directed Graph) 에지 (u,v) 는 u로 부터 v로의 방향을 가진다. 방향이 다르면 서로 다른 그래프가 된다. ** self edge가 존재할 수 있다. 3. 가중치 그래프 ( Weighted ) 에지 마..
객체를 여러개 만들 필요가 없을 때 만드는 방법이다. 자바에서는 class 외부에는 인스턴스 정의를 할 수가 없는데, 이때 싱글톤 패턴을 이용해 작성한다. 예시로 company 클래스와 외부 클래스인 companyTest 클래스를 살펴보면 다음과 같다. //1 Company public class Company { private static Company instance = new Company(); //constructure 하나 하고 private으로 만든다. private Company(){} //외부에서 사용할땐 이걸로 만들어 쓴다. // static 으로 생성해야 외부에서 쓸 수 있다. public static Company getInstance() { if(instance == null) in..
좋은 소프트웨어의 규칙에 관한 내용이다. Clean Code로 부터 시작하는 소프트웨어의 원칙을 설명한다. 함수 & 데이터 구조를 클래스로 배치하고 클래스들을 서로 결합하는 방법에 대해 알아본다. SOLID 법칙 SRP : 단일 책임 원칙 : 각 소프트웨어의 모듈 변경이유는 하나 일 것 OCP : 개방-폐쇄 원칙 : 기존 코드를 수정하지 않고 새로운 코드를 추가하는 방향으로 LSP : 리스코프 원칙 : 상호대체 가능하게 설계할것. 구성요소간 서로 치환이 가능하도록 한다. ISP : 인터페이스 분리 원칙 : 각각의 인터페이스는 분리한다. DIP : 의존성 역전 원칙 : 저수준 코드 ← 고수준 으로 의존 해서는 안된다. 세부사항이 고수준의 정책에 의존하는 방향으로 설계할 것. 1. SRP 하나의 모듈은 하나..
1. 오류상황 다음과 같이 SpringBoot의 Junit Test가 인텔리제이에서 오류가 발생했다. 이런 경우 인텔리제이의 설정을 살펴야 한다. 2. 해결 Settings > Build, Excution, Deployment > Build Tools > Gradle에서 다음 파란색으로 동그라미 친 부분의 Build and run using과 Run tests using을 모두 IntelliJ IDEA로 바꿔준다! (Gradle로 되어있었음.. )
배포 진행에 앞선 설명 AWS의 EC2 , RDS EC2 인스턴스와 RDS 인스턴스는 아마존의 VPC(Virtual Private Cloud) 서비스 내에서 가상의 컴퓨터를 임대 받는 것입니다. EC2 인스턴스란 ? Elastic Compute Cloud(Amazon EC2) 의 약자입니다. 아마존의 클라우드 컴퓨팅 플랫폼으로 쉽게 생각해서 사용자가 가상의 컴퓨터를 임대받는 것 입니다. 사용자는 원하는 OS를 선택하고 웹서비스에 필요한 프로그램을 설치하면 됩니다. AWS(아마존 웹서비스)의 EC2에서는 인터넷을 통해서 이 컴퓨터에서 접속 할 수 있는 URL(Public DNS)을 제공하는데, 이 URL을 통해서 웹서비스를 하거나, 자신이 구입한 도메인을 붙여서 서비스 할 수도 있습니다. RDS 인스턴스란..
구조적 프로그래밍 기능적 분해 . 모듈을 증명 가능한 더 작은 단위로 재귀적으로 분해할 수 있다. 객체지향 프로그래밍 캡슐화 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 구분선 밖에선 데이터는 은닉되고, 일부 함수만이 외부에 노출된다. →그러나, OO 언어는 오히려 C가 표현했던 완전한 캡슐화를 약화시켰다. ( 사용자가 멤버변수의 존재를 알게 된다. ) 상속 어떤 변수와 함수를 하나의 유효범위로 묶어서 재정의 하는 일이다. → OO 언어가 고안 되기 전부터 상속과 유사한 기법이 사용되었다. OO언어가 완전히 새로운 개념을 만들지는 못했지만 데이터 구조에 가면씌우는 일에 편리한 방식을 제공했다. 다형성 1.함수를 가리키는 포인터 응용한 것이 다형성이다. → OO로 다형성..
클린 아키텍쳐 - 소프트웨어 구조와 설계 원칙 로버트 C. 마틴 저서를 읽고 정리 글을 올릴 예정 입니다. 소프트웨어 아키텍처의 목표는 필요한 시스템을 만들고 유지보수하는 데 투입되는 인력을 최소화 하는 데 있다. 개발자들의 잘못된 통념 : 지저분한 코드를 작성하면 단기간에는 더 빠르게 갈 수 있고, 장기적으로 볼때만 생산성이 낮다. → 제이슨고먼의 TDD(테스트 주도 개잘) 실험 결과 TDD를 적용한 날이 적용 안한 날보다 10% 가량 빠른 작업을 냈다. → 즉, 빨리가는 유일한 방법은 제대로 가는 것이다. 잘 모르던 때에는 눈앞에 보이는 것들을 바로 만드는 습관이 있었다. 그리고 특히 TDD 같은 경우도 하면 오히려 시간 낭비 일것이라 생각했는데 제이슨 고먼의 실험에서도 그렇고 오히려 시간이 덜 든다..