일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- php 프로그래밍 입문
- C언어
- php 프로그래밍
- 페이코 초대코드
- Flutter
- php 프로그래밍 입문 솔루션
- 파이썬
- php 프로그래밍 입문 예제
- C
- spring
- 최단 경로
- Java
- 플러터 개발환경 설정
- php 프로그래밍 입문 연습문제
- php 프로그래밍 입문 3판
- JAVA SPRING
- php 프로그래밍 입문 문제풀이
- 스프링
- 배열
- 페이코 친구코드
- 페이코 추천인코드
- 자바 스프링
- 페이코 추천인
- 자바
- SWEA
- 한정 분기
- 백준
- php
- programmers
- 플러터
- Today
- Total
목록자바 (16)
ImJay
오류 내용 프로젝트의 모든 jsp 에서 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 컴파일 에러 발생 해결하기 위해 수행했던 과정들 서치했을 때 대부분 두가지 방법으로 해결하셨었다. 첫번째 방법 1. 프로젝트 우클릭 > Properties 2. Java Build Path > Libraries > Add Library.. 3. Server Runtime > Next 4. 본인에게 해당하는 Tomcat version 선택 > Finish 5. Apply and Close 나는 안됨 두번째 방법 1. 프로젝트 우클릭 > Properties 2. Project Facets > Java > Runtimes..
자연어 처리를 통한 가공된 텍스트가 필요했다. AI 는 Python 에서만 다루기 때문에, Python 에서 작업 후 값을 Java 로 값을 넘겨 받아야했다. 다양한 방법이 존재했지만 간단하고 쉬운 방법을 찾아서 소개해보려고 한다. implementation 'org.apache.commons:commons-exec:1.3' 1. build.gradle 에 해당 코드를 추가하고, 빌드해준다. package ParkLab.VMap.model.Service.textrank; import org.apache.commons.exec.CommandLine; import org.apache.commons.exec.DefaultExecutor; import org.apache.commons.exec.PumpStrea..
[Java Spring] IntelliJ 한글이 깨질 때 인텔리제이를 통해 테스트 파일을 빌드하던 중, 한글 내용이 깨지는 현상이 발견했다. 구글링을 통해 여러가지 해결방법을 적용해보았지만, 해결되지 않았었다. 근본적인 원인은 자바 버전에 있었다. 글을 쓰는 현재 시점까지는 자바 18 이상 버전을 사용하면, 한글이 깨지는 현상이 발생한다. 본인은 19 버전을 사용하고 있었고, 글을 읽으시는 분들도 18, 19 버전을 사용하고 있다면 아래 방법을 통해 해결되길 바란다. 1. 아래 링크를 통해 Java 17 version 을 다운 받는다. Download the Latest Java LTS Free Subscribe to Java SE and get the most comprehensive Java supp..
[Java Spring] 잘못된 Gradle JVM 구성을 발견했습니다. JDK 19이(가) Gradle 7.6와(과) 호환되지 않습니다. JAVA_HOME 환경 변수를 수정하세요. Java version 과 Gradle 호환성 문제에 대해, 자바 버전에 맞는 Gradle version 을 사용해야 한다. 내가 사용하는 JDK version 은 19, Gradle version 은 7.6 이니까 무언가 잘못돼도 한참 잘못됐다. 리스트 상에서는 전부 나와있지 않지만, Gradle version 이 7.6 이니까 Java version 은 18이 맞지 않을까? 라고 추측했다. 1. IntelliJ 설정 (Ctrl + Alt + S) > 빌드, 실행, 배포 > Gradle > Gradle JVM Java ve..
java.util.concurrent.ThreadLocalRandom은 java.util.Random를 상속하여 멀티 쓰레드 환경에서 서로 다른 인스턴스들에 의해 의사 난수를 반환하므로 동시성 문제에 안전하다. import java.util.concurrent.ThreadLocalRandom; // 100 미만의 랜덤 상수 추출 public class Random { public void RandomInt { int randomint = ThreadLocalRandom.current().nextInt(100); System.out.println(randomint); } } 여기에 nextInt를 함께 사용하면 0부터 넘긴 값 미만 구간에서 랜덤으로 난수를 추출할 수 있다.
부모 클래스로부터 상속 받은 자식 객체는 생성자를 어떻게 만들까? public class Child extends Parent { private int x; public Child() { this(0, 0, 0, 0); } public Child(int a, int b, int c, int x) { this.setA(a); this.setB(b); this.setC(c); this.x = x; } } 위와 같은 방법으로 setter를 호출하여 값을 초기화 시켜줄 수 있다. 그러나, 꽤나 비효율적으로 보인다. 우리는 매개변수가 없는 생성자와 부모 클래스를 지칭하는 super로부터 힌트를 얻어 아래와 같은 방법을 사용할 수 있다. public class Child extends Parent { private..
[자바] Is A 상속 Has A 상속과 비교했을 때 Is A 상속은 부모가 자식이 요구하는 것을 완벽하게 갖고 있진 않다는 것이다. Is A 상속은 한 캡슐이 내가 만들고자 하는 캡슐에서 필요한 부분들이 상당 부분 있을 때, develop247.tistory.com 앞서 한 이야기에서 우리가 해결하지 못한 문제가 있다. Is A 상속을 통해 기존에 있던 객체에 우리가 원하는 변수를 추가하여 새로운 객체를 완성했는데, 기존 객체의 메소드에서는 우리가 새롭게 추가한 변수에 대한 고려가 되어있지 않다는 점이다. 우리는 이 문제를 어떻게 해결할 수 있을까? 우선 어떤 식으로 메모리가 우선 할당되는지 이해가 필요하다. 우리는 기존 객체 Parent 와 Parent 를 Is A 상속하는 Child 객체를 갖고 있..
Has A 상속과 비교했을 때 Is A 상속은 부모가 자식이 요구하는 것을 완벽하게 갖고 있진 않다는 것이다. Is A 상속은 한 캡슐이 내가 만들고자 하는 캡슐에서 필요한 부분들이 상당 부분 있을 때, 그 캡슐을 상속하여 필요한 부분들을 가져다 쓴다는 개념으로 이해하면 쉽다. 대표적인 Is A 상속에는 프레임워크가 있다. 프레임워크를 통해 Is A 상속을 하여 내가 원하는 부분을 상속함으로써 작업 속도를 향상하고, 작업량을 줄일 수 있다. 장점은 생산성이 좋다는 것이지만, 단점으로는 기성품으로 생각될 수 있다는 점이다. 거의 모든 부분을 가져다 쓰기 때문이다. 그러나 현재 IT는 굉장히 빠른 속도로 성장하고 있기 때문에 대다수 현업자들이 프레임워크를 선호하고, 일부분을 나의 아이디어로 차별화시키는 전략..
한 캡슐이 다른 캡슐의 객체를 가지고 있는 상태를 Has A 상속이라고 한다. Has A 상속은 두가지로 구분할 수 있다. 부모는 자식을 항상 사용하기 때문에, Has A 는 영구적인 성질을 띈다. Composition Has A : 부모가 생성되면 자식의 객체도 모두 생성된다. Aggregation Has A : 부모가 생성되어도 자식의 객체가 모두 생성되는게 아니라, 하나하나씩 구성해나간다. dependency 는 의존객체로, 일시적으로 사용하는 관계이다.
계산기 프로그램을 만든다고 생각해보자. 프로그램은 기본적으로 1. 값을 입력한다. 2. 원하는 연산을 선택한다. 3. 선택한 연산에 따른 알고리즘을 실행한다. 4. 연산 결과를 출력한다. 위와 같은 형태로 동작할 것이다. 그렇다면, 우리가 만든 프로그램의 플랫폼이 확장된다고 생각해보자. 처음엔 웹에서 동작하는 것을 목표로 했던 프로그램이, 단일적인 설치 프로그램을 목표로 한다고 하면 여러 언어들 중 마음에 드는 GUI 디자인 또는 기능을 선택하여 구현할 것이다. 기존에 웹을 기준으로 작성했던 코드들을 전부 다시 작성해야 할 것이다. 상당히 귀찮다. 이런 경우 활용할 수 있는 것이 코드의 재사용이다. 우리가 만든 계산기 프로그램의 연산 알고리즘(3)은 계속 재사용할 수 있다. 입출력(1, 2, 4)만 사용..