반응형 Programming256 SpringBoot란? 시작시 주의사항 알아야 하는 개념들 스프링 부트 시작할 때 주의사항 Java를 기반으로 한 웹 프레임워크다. 오픈소스 기반 프레임워크다. SpringBoot는 IoC 컨테이너를 가진다. IoC(Inversion of Control, 제어의 역)이란 개발자가 인스턴스를 생성해서 직접 Heap 메모리 영역에 올리는 것이 아니라 SpringBoot가 알아서 메모리 영역을 관리하는 것을 말한다. 개발자가 스스로 올린게 아니지만, 이미 메모리 영역에 올라가 있는 것이다. SpringBoot는 DI를 지원한다. DI(Dependency Injection, 의존성 주입)은 객체를 생성하고 한번 생성된 객체를 여러 클래스에서 공유하여 사용할 수 있는 것이다. SpringBoot는 많은 필터를 가진다. 탐캣 내에 존재하는 스프링 컨테이너에 들어가는 필터를.. 2022. 2. 23. JAVA StringTokenizer 란 개념 이용방법 StringTokenizer 개념 StringTokenizer 클래스를 사용해서 응용 프로그램에서 문자열을 토큰 단위로 구분해서 만들어주는 클래스다. StringTokenizer를 이용하면 StreamTokenizer 보다 훨씬 간단하게 토큰 값을 구할 수 있다. StringTokenizer 클래스에서 메소드는 식별자, 숫자, 및 인용문자열을 구분하지 않는다. 심지어 주석을 인식해서 건너뛰지도 않는다. 토큰을 구분하는 문자열은 구분기호 집합은 생성할 때 토큰별로 따로 지정이 가능하다. StringTokenizer 인스턴스 생성시 returnDelims를 통해 두가지 방법으로 생성이 가능하다. returnDelims가 true인 경우 구분 기호 문자 자체를 토큰으로 간주하여 토큰이 하나의 구분기호 문자거나.. 2022. 2. 23. 백준 알고리즘 18258 큐 자료구조 구현하기 큐(Queue)는 선형 자료구조다. 데이터 대응관계가 1:1로 매칭이 된다. 선형 자료구조에는 순차(Sequential) 구조와 연결(Linked) 구조가 있다.순차 구조로 삽입과 삭제 시간이 상당히 많이 소요되는 구조다. 그럼에도 불구하고 논리가 명확한 자료구조이기 때문에 함수호출이나 대기행렬에 주로 사용되는 자료구조다. 큐(Queue)에서는 스택(Stack)과는 다르게 포인터가 2개의 포인터가 존재한다. 삽입포인터(Rear)는 1씩 증가하면서 큐 자료구조에 자료를 추가하는 역할을 담당한다. 삭제포인터(Front)는 저장된 데이터 중 가장 처음 입력된 데이터를 출력하고 1씩 증가한다. 큐 자료구조에 데이터가 없는 상황은 삭제포인터와 삽입포인터가 같아지는 경우다. 큐(Queue) 구조는 데이터의 입구와 .. 2022. 2. 22. 백준 알고리즘 10828 스택 구현하는 방법 JAVA 백준 알고리즘 10828은 스택을 구현하는 알고리즘이다. 스택 알고리즘은 LIFO 방식의 자료구조다. 가장 나중에 입력된 값이 가장 먼저 출력되는 알고리즘이다. 스택 알고리즘을 가장 많이 사용하는 곳이 뒤로가기 앞으로가기 등의 웹 브라우저 인터페이스나, 문서 작업시 Undo, Redo 작업에 사용된다. 프로그램 시 운영체제에서도 스택 알고리즘을 사용해서 스택 메모리 영역을 관리한다. 스택영역에는 지역변수와 매개변수가 저장된다. 함수의 호출과 함께 할당되며, 함수 호출이 완료되는 순간 소멸된다. 이를 스택프레임(Stack Frame)이라 한다. 스택에서 현재 위치를 알려주는 스택포인터를 활용하여 알고리즘 구현이 완성된다. 스택에서는 대표적으로 POP(), PUSH() 메소드를 사용한다. PUSH() 메소드.. 2022. 2. 21. 백준 알고리즘 1003번 피보나치 함수 0과 1 개수 카운팅 JAVA 백준 알고리즘 1003번은 기존 피보나치 수를 구하는 알고리즘에서 나아가 0과 1의 수를 세는 문제다. fibonacci() 메소드를 실행하면 최종적으로 매개변수값이 1까지 줄어들게 되면서 마지막에는 0과 1이 카운팅 되기 때문에 주어진 자연수(40보다 작거나 같은 수)에 따라서 0와 1의 개수가 달라진다. 먼저 for문을 순회하면서 입력값을 받아오고, 다시 for문을 순회하면서 fibonacci() 메소드를 순차적으로 실행시키는 코드를 작성했다. 결과값은 맞게 나오지만 백준 코딩 사이트에서는 시간초과가 걸린다. 피보나치 로직을 그대로 실행시키면서 숫자를 구해도 되지만 시간초과에는 해결이 안된다. JAVA CODE #1 (시간초과 코드) import java.util.Scanner; public clas.. 2022. 2. 19. JAVA BufferedReader와 BufferedWriter 사용법 Scanner나 System.out.print() 사용해서 입출력을 만들게 되면 메모리에 상당한 부담이 가해지게 된다. 이를 방지하기 위해서 버퍼를 사용해서 입출력 효율을 올릴 수 있다. 데이터 처리양이 많을 때 유용한 기능이다. BufferedReader는 Scanner의 기능을 한다. Scanner의 경우 공백도 사용가능하지만, BufferedReader를 사용할 때는 Enter만 구분자로 인식하기 때문에 추가적으로 가공을 해줘야 한다. 또한 BufferedReader에서 받아오는 데이터는 모두 String 객체이기 때문에, 형변환을 반드시 해줘야 한다. BufferedWriter는 System.out.print 메소드와 일치된다. 다만 중간에 버퍼를 사용하기 때문에 더 빠르다는 차이점이 있는 것이다.. 2022. 2. 18. 이전 1 ··· 8 9 10 11 12 13 14 ··· 43 다음 반응형