본문 바로가기

전체 글

(94)
[JAVA] 기초문법 - 파일입출력(1) 자바 입출력 자바에서 입출력은 예외처리가 필수적이다. 입출력을 동시에 하는 스트림은 없다. 입력스트림 출력스트림이 독립적으로 존재한다. 바이트 단위 읽고 쓰거나, 문자단위로 읽고 쓰거나 둘중 하나이다. 기반 스트림이거나 보조스트림이거나 둘중 하나이다. 일반적으로 입력스트림과 출력스트림이 독립적으로 존재하지만, 파일용으로 입출력을 동시에 가능하게 하는 randomacessfile이라는 클래스가 하나 존재한다. system.in.read()로 알파벳 하나를 읽을 수 있다.(단 반환형은 int형이다.)(예외처리 필수) 알파벳을 출력하려면 char형으로 형변환을 해줘야한다. sysyem.in은 한 바이트씩 읽는다. 여러 알파벳 입력 받기 엔터가 눌릴때까지 입력을 받고 한글자씩 출력 하는데 개행 없이 출력하는 예..
[JAVA] 기초문법 - 예외처리 예외처리 자바 안정성을 추구하는 언어이다. 즉, 여러가지 오류에 대해 핸들링을 할 수 있도록 지원한다. 즉, 예외처리를 이용하여 프로그램이 비정상종료되는 것을 막고, 로그를 남겨 원인을 파악할 수 있게 하는 프로그래밍이 필요하다. 등 무수히 많은 클래스가 존재한다. 예외처리 방법 try 구문 안에서 예외(오류)가 발생하면 catch문으로 가서 처리를 하고 그 후 프로그래머가 작성한 로직을 그대로 실행. 그대로 실행하기 때문에 마지막 end 글자가 출력됨을 알 수 있다. 예제에서는 예외 클래스에 toString 메서드를 출력한 것. 논리적으로 프로그래머가 예외처리를 할 수 있도록 코딩 해야함.(프로그램이 비정상 종료가 되지 않음.) catch 구문 다음에 finally 구문을 추가하면 반드시 finally..
[JAVA] 기초문법 - 스트림 배열이나 컬렉션 등을 대상으로 효율적으로 연산 및 소팅을 할 수 있는 객체(일관성 있는 연산을 처리) ex) 배열에서 큰수 구하기 합 구하기, 어레이리스트에서 큰수 구하기 합 구하기 등 (자료에 상관없이 동일한 연산을 제공) 배열같은 자료를 변화시키지 않음. 다른 메모리를 사용하기 때문에 다른 버퍼를 사용하는데 이부분이 스트림이다. 재사용은 불가능하다.(소모) 다시 사용하기 위해서는 스트림을 다시 생성해야함. 중간의 결과를 알 수 없다.(지연연산) 사용법 자료(배열 등)을 생성후 Arrays.stream에 전달 한다. 그 후 스트림에서 제공하는 메서드를 호출해서 리턴받는다. 스트림의 재사용은 불가능하다.(소모가 되었기 때문에) 다시 스트림을 사용하기 위해서는 스트림은 재 선언 해야함. 배열이 아닌 어레이..
[python] 코딩테스트 대비 - 2차원 배열 합 문제) 정답 코드) 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 import sys #sys.stdin = open("input.txt", 'r') n=int(input()) a=[list(map(int, input().split())) for _ in range(n)]#2차원 배열 초기화 largest=-2147000000 for i in range(n): #열행 합 추출 sum1=sum2=0 for j in range(n): sum1+=a[i][j]#가로 sum2+=a[j][i]#세로 if sum1>largest: largest=sum1 if sum2>largest: largest=sum2 sum1=s..
[python] 코딩테스트 대비 - 수열의 합 (경우의 수) 문제) 정답 코드) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import sys #sys.stdin = open("input.txt", 'r') n, m=map(int, input().split()) a=list(map(int, input().split())) lt=0#왼쪽 포인터 rt=1#오른쪽 포인터 tot=a[0]#합 cnt=0#카운트 while True: if tot
[python] 코딩테스트 대비 - 정렬된 리스트 합치기 문제) 답안코드) 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 import sys #두리스트 더해서 sort() 하면 시간복잡도 nlog(n)-퀵소트 일경우 #정렬된 두 리스트 이기 때문에 앞에서 부터 하나씩 비교해 나가면 n번 반복으로 가능 #sys.stdin=open("input.txt", "r") n=int(input()) a=list(map(int, input().split())) m=int(input()) b=list(map(int, input().split())) p1=p2=0#리스트 인덱스 가르키는 포인터 역할 c=[]#결과 리스트 while p1
[SPRING] 첫페이지 만들기 및 빌드 스프링 부트는 resources/static/ 경로에 index.html 파일을 만들면 index.html이 첫화면(welcome page) 가된다. index.html 에 코드 작성 Hello spring!! 작성 후 메인메서드 실행후 localhost:8080 으로 들어가면 다음과 같은 페이지가 생성됨. *****스프링은 엄청나게 거대해서 필요한것을 찾아가는 능력이 중요함. (spring.io 사이트에서 자신의 버전에 맞게 찾아야함.)**** 지금 한 것은 정적인 html을 웹서버가 클라이언트에게 그냥 넘겨준 것. 템플릿 엔진을 사용해서 웹페이지의 변화를 줄 수 있음 (블로그에서는 thymeleaf 템플릿 엔진을 사용) 컨트롤러: 웹어플리케이션에서 첫번째 진입점이다. 다음과 같은 경로에 컨트롤러라는 ..
[SPRING] 스프링구조 - 의존관계 external Libraries에 보면 설정하지 않았는데도 불구하고 엄청나게 많은 라이브러리가 존재함. gradle과 maven과 같은 빌드툴들은 의존관계를 관리해줌. ㅡ> 우리가 필요해서 설정한 spring web 라이브러리를 설정하면 spring web에 필요한 라이브러리들을 자동으로 설정해줌. (톰켓 등) Gradle과 maven은 의존관계가 있는 라이브러리를 함께 다운로드 한다.(라이브러리의 라이브러리에 필요한 것들 까지 전부) 의존관계 보는법: 화면 오른쪽 위 Gradle 클릭 스프링부트와 관련된 라이브러리를 사용하면, 스프링코어까지 가져와 스프링관련된 것까지 자동으로 설정됨. 스프링 부트 라이브러리 spring-boot-starter-web -spring-boot-starter-tomcat:..