전체 글

스파게티 코드라도 작성하고보자❗️
CS/자바 & 스프링

[Java] JAVA의 구동 원리, 종류, JVM, Garbage Collection, Thread-Safe, 직렬화

질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/blob/main/java/README.md [JAVA] JAVA 더보기 출처 종류 자바는 크게 세가지의 종류로 나뉜다. SE, EE, ME Java SE (Standard Edition) 자바 언어의 핵심 기능을 제공. 자바 언어의 기본적인 타입과 객체에서부터, 네트워킹, 보안, 데이터베이스 접근, GUI, XML 파싱에 사용되는 고수준의 클래스까지 모두 정의한다. 보통 학생들이 사용하는 수준의 에디션이다. Java EE (Enterprise Edition) 얘는 Java SE 플랫폼 상에 구축된다. 이는 기업용 애플리케이션을 개발하는 데 필요한 여러가지 도구와 라이브러리를 모아 놓은 것이다. 이 패키지..

CS/알고리즘

[알고리즘] LIS(Longest Increasing Subsequence, 최장 증가 수열) - 이진 검색 활용

LIS의 다른 두가지 방법 이번에는 이진 검색을 활용하여 최장 증가 수열의 크기를 구해보자. C[k]: 길이 k인 증가 수열에 대하여, 0~(k-1)번째 값을 고려하였을 때 k번째에 들어갈 수 있는 가장 작은 값을 C[k]에 저장한다. 이때 이전 알고리즘과는 다르게 LIS 길이는 C[k]에 저장되는 것이 아니라, k 그 자체가 된다! 예를들어 한 학급의 학생들을 키 순으로 정렬한다고 생각해보자. 결과적으로 완성되는 배치는 다음과 같다. 여기서 주의할 점은 line5는 LIS가 아니라는 것이다!!! 이 배열은 오직 LIS의 길이를 구하기 위해 제작된 것이라 이 배열만으로는 정확한 LIS를 알아낼 수 없다.

문제 풀이/알고리즘

[백준] (1194번) 달이 차오른다, 가자

문제 (1194번) 달이 차오른다, 가자 링크 : https://www.acmicpc.net/problem/1194 사용 언어 : JAVA 내 생각 초기 생각 옛날에 풀었던 아기상어와 비슷하게 풀면 되겠다고 생각했다. 근데 visited 배열을 어떻게 만들어야할지 당최.. 알 수가 없었다. (다른 문제를 풀어도 항상 여기서 막힌다..ㅎ) 그래서 위의 방법이 아닌가? 하면서 dfs로도 풀어보고 stack도 사용해보고 여튼 별 짓 다함 개선 비트 연산자를 활용해야 한다는 힌트를 듣고, visited 배열에 key 보유 상태를 나타내는 차원을 추가했다. 3차원 배열을 사용할 때마다 안터지나..? 하고 조마조마한데 생각보다 잘 안터지는 듯. 최종 bfs/dfs 문제는 푸는 방식이 거의 정해져 있다. bfs로 탐..

CS/자바 & 스프링

[Java] 객체지향 SOLID 원칙, 스레드, 싱글톤 패턴

질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/blob/main/java/README.md [JAVA] 객체지향이란? 더보기 참고 https://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D http://www.incodom.kr/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5#h_6c44ebae9d828428c5a51a0e5235aa96 개념 Object-Oriented Programming, OOP. 컴퓨터 프로그래밍의 패러다임 중 명령형 프로그래밍의 하나이다. 객체 지향 프로그래밍은 컴..

나중에 알아볼 것들..

[Servlet] 경로 관련 참고 글

https://lordofkangs.tistory.com/35 [ JSP ] 서블릿(Servlet) 등록 (web.xml 과 어노테이션) [ JSP ] Servlet 이란? Servlet이란 Server Application Let의 줄임말이다. Let은 조각을 의미하니 서버의 조각을 Servlet이라고 한다. Servlet은 왜 필요할까? 우선 서버의 필요성부터 알아보자. 서버(Server)란.. lordofkangs.tistory.com request.getContextPath() 함수 = 프로젝트 Path만 가져옴 예) http://localhost:8080/project/list.jsp [return] /project 를 가져옴 request.getRequestURI() 함수 = 프로젝트 + 파일..

CS/웹

[Web] DAO, DTO, VO / RESTful / HTTP SET-Cookie / URI, URL, URN

질문 출처 : https://github.com/jjuyeon/Tech-Interview-Study/tree/main/web [7. Web/Web] DAO, DTO, VO란? MVC 패턴에서 사용되는 객체이다. DAO (Data Access Object) DB와 관련된 CRUD 작업을 전담하도록 만든 객체이다. 비즈니스 로직에서 DB 접근 로직을 분리하기 위해 사용된다. 사용자는 자신이 필요한 인터페이스를 DAO에게 던지고 DAO는 이 인터페이스를 구현한 객체를 사용자에게 편리하게 사용할 수 있도록 반환해 준다. DTO (Data Transfer Object) 계층간의 데이터 교환을 위해 만들어진 Java Beans. (여기서 말하는 계층이란 Controller, View, Busniess, Persis..

나중에 알아볼 것들..

[Web MVC] redirect, forward 정리..

redirect는 주소가 바뀜! 데이터 안가져가고 페이지 전환만 함. 보통 세션 만들 때 사용.. 굳이 누구한테 세션 사용하라고 지정 안하니까 ㄱㅊ. redirect로 페이지를 이동하면 기존 페이지에 존재하던 request, response는 사라진다. response.sendRedirect("/[context-root]/[resourse]");// 절대경로 forward는 주소는 안바뀜! 그냥 데이터를 해당 페이지로 넘겨줘서 출력만 하게 하는 것임.. 게시판 만들 때, db에서 가져온 데이터를 특정 페이지가 그걸 출력하도록 만들어야 하니까 포워드 사용 RequestDispatcher rd=request.getRequestDispatcher("/[context-root]/[resourse]"); rd.f..

나중에 알아볼 것들..

[CS] 언어 종류

compile VS scriptlet 실제로 실행은 compile로 하는게 빨라서 좋고...? 실제 코딩은 scriptlet으로 하고..?????

CS

0324 workshop

rs.next() 부분 수정 rs가 계속 돌아서 null 값이 씌워지는게 아니라, ResultSet의 커서(current cursor)는 원래 첫번째 행 바로 전을 가리키도록 초기화 되기 때문에 이상한 값이 씌워지는 거였다. 그래서 맨 처음에 rs.next() 함수를 호출하는 것도 커런트 커서를 첫번째 행으로 옮기기 위함이라고... rs에 여러 행의 값이 들어가는 경우에는 while(rs.next())를 사용해 계속 커서를 다음 행으로 넘겨줘야 하고, 만약 단일행이 들어간다면(들어가는게 확실하다면) if(rs.next())로 써줘도 된다.

얌얌념념
얌얌 스파게티