반응형

분류 전체보기 77

[JAVA] 정수 제곱근 판별

문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 코드 import java.text.DecimalFormat; class Solution { public long solution(long n) { long answer = 0; String result = new DecimalFormat("#.##").format(Math.sqrt(n)); boolean ox = result.matches("-?\..

[JAVA] 콜라츠 추측

문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. [제한 사항] 입력된 수, num은 1 이상 8000000 미만인 정수입니다. [입출..

[JAVA] 하샤드 수

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 코드 class Solution { public boolean solution(int x) { boolean answer = false; String str[] = String.valueOf(x).split(""); int sum = 0; for (int i = 0; i < ..

[Servlet] 파일 업로드

파일 업로드를 위한 환경 설정 web.xml 에 Tomcat 파일 업로드 처리를 위한 config 환경 설정 한다. D:\\upload\\temp 20971520 41943040 20971520 servlet-context.xml 이미지 등록 시 섬네일을 만들기 위한 라이브러리도 추가! // 썸네일 https://mvnrepository.com/artifact/net.coobird/thumbnailator implementation 'net.coobird:thumbnailator:0.4.17' JSP, JS Upload 이미지 첨부시 반드시 enctype="multipart/form-data"지정해줘야 한다. 이름은 파라미터 타입과 같이 맞춰주어야 한다. input file 에 multiple을 추가하면..

[sql] 데이터 모델링의 이해

데이터 모델링의 특징 추상화 : 간략한 표현 단순화 : 쉬운 이해 명확성 : 명확한 의미 전달 데이터 모델링 단계 1단계 개념적 모델링 업무적 관점에서 모델링, 기술적 용어 사용X 추상화 수준이 높다. 엔터티(Entity)와 속성(Attribute)을 도출, 개념적 ERD를 작성 2단계 논리적 모델링 개념적 모델링을 논리적 모델링으로 변환 특정 데이터베이스 모델에 종속 식별자 도출, 릴레이션 정의, 관계, 속성 표현 정규화 -> 재사용성 높이기 3단계 물리적 모델링 실체 구축할 시스템에 테이블, 인덱스 등을 생성 성능, 보안, 가용성 등을 고려하여 구축 데이터 모델링을 위한 ERD 작성절차 (1) 엔터티를 도출하고 그린다. - 업무에서 관리해야 할 집합을 도출 (2) 엔터티를 배치한다. - 중요한 엔터티..

SQL_기초 공부 2023.02.21

[spring] 트랜잭션 설정하기

Test 2개 이상의 테이블에 insert 작업을 하나의 '트랜잭션'이라고 가정하고 트랜잭션 설정이 없는 경우와 있는 경우를 비교 해보자! 두 작업 중 하나의 작업이 오류가 나게 되는 상황을 만들어 보았다. text 길이를 50 정도로 짧게 잡은 테이블과 길이를 길게 잡은 테이블 두 곳에에 긴 텍스트를 insert하려고 하는 상황! 오류가 날 수 밖에 없는 경우를 만들었다. 이때, 트랜잭션 설정을 잡지 않은 경우에는 ) 오류가 남에도 불구하고 한 테이블에는 정상적으로 들어가는 일이 발생한다. 트랜잭션 설정을 작은 경우에는 ) 정상적으로 두 테이블 다 insert 되지 않는다. 혹시나 DB정보의 오류가 생길 수 있으므로 트랜잭션 설정은 반드시 필요하다! 트랜잭션 설정 root-control.xml 다음 3..

[Nginx] Nginx로 서버 설정하기

Nginx란? Nginx는 경량 웹 서버 소프트웨어로, 가벼움과 높은 성능을 목표로 한다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해주는 HTTP Web Server, Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서 와 리버스 프록시 및 메일 프록시 기능을 가진다. Nginx는 *Event-Driven * 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용하고,비동기 방식으로 요청들을 동시적으로 처리할 수 있다. 새로운 요청이 들어오더라도 새로운 프로세스와 쓰레드를 생성하지 않으므로, 프로세스와 쓰레드 생성 비용이 존재하지 않고, 적은 자원으로 효율적인 운용을 할 수 있다. 때문에 Nginx는 단일 서버에서도 동시에 ..

[mybatis-spring] mapper 세팅하기

1. build.gradle 추가 2. DataSource 를 세팅 -> HikariCP 3. MyBatis 세팅 -> SqlSessionFactory 4. Mapper 인터페이스 5. Mapper 인터페이스 설정이 필요. 6. Mapper에 SQL을 개발. 7. Test 만들어 테스트하기 build.gradle - dependencies 안에 //스프링 코어 https://mvnrepository.com/artifact/org.springframework/spring-core implementation 'org.springframework:spring-core:5.3.18' implementation 'org.springframework:spring-test:5.3.18' implementation '..

[JAVA] 페이징 처리 방법

Paging1 전통적인 페이징 처리 방법 private int page; //현재 페이지 번호 private int start, end; //시작, 끝 페이지 private boolean prev, next; //이전, 다음 private int total; //전체 데이터의 수 public Paging(int page, int total) { this.page = page; this.total = total; //주소창에 음수 값을 입력했을 때 제대로 나오도록 하는 식 page = page total ? (int)(Math.ceil(total/10.0)):page; System.out.println("page: "+page); //그 장의 마지막 페이지 int tempEnd = (int)(Math.ce..

JAVA_기초 공부 2023.02.21
반응형