목록전체 글 (302)
elevne's Study Note

HttpServletRequest, HttpServletResponse 두 클래스는 Java Servlet API 에서 사용되는 클래스로, HTTP 요청과 응답을 처리하는데 사용된다. 여기서 Servlet 이란 클라이언트의 요청을 처리하고 결과를 응답해주는 자바 웹 프로그래밍 기술을 말한다. HttpServletResponse 는 HTTP 요청 정보를 캡슐화한다. 이 클래스는 클라이언트가 서버에 보낸 HTTP 요청정보를 나타내는 것으로, Servlet 에서 이 정보가 사용된다. getParameter(String name) HTTP 요청의 매개변수 값을 가져온다. getParameterMap() 모든 HTTP 요청 매개변수를 매개변수 이름과 값으로 나타내는 Map 객체를 반환한다. getHeader(St..

Java 7 에서 새로 추가된 try-with-resources 라는 것에 대해서 알아보았다. 이는 예외 발생 여부와 상관없이 사용했던 리소스 객체 (각종 입출력 스트림, 서버 소켓, 소켓, 각종 채널) 의 close() 메서드를 호출해서 안전하게 리소스를 닫아준다. FileInputStream, FileOutputStream 을 과거 Java 의 try-catch 문 안에서 사용할 때는 아래와 같이 작성해야했다. public class Main { public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("../output.txt"); ... } catch (IOException ..

스프링이 개발자에게 제공하는 가장 중요한 가치가 무엇이냐고 질문한다면 나는 주저하지 않고 객체지향과 테스트라고 대답할 것이다. 지속적으로 변화하고 복잡해지는 어플리케이션을 효과적으로 개발하기 위해서는, 확장과 변화를 고려한 객체지향적 설계와 그것을 효과적으로 담아낼 수 있는 IoC/DI 기술 뿐만 아니라 테스트 기술이 필요함을 강조한다. 테스트를 통해 코드가 내가 의도했던 대로 정확히 동작하는지를 확인하고, 코드에 대한 확신을 가질 수 있게된다. 테스트하고자 하는 대상이 명확하다면, 그 대상에만 집중해서 테스트하는 것이 바람직하다. 가능하면 작은 단위로 쪼개서 집중하여 테스트를 진행하는 것이다. 이와 같이 작은 단위의 코등 대해 테스트를 수행하는 것을 Unit Test (단위 테스트) 라고 한다. (어떤..

마지막 시간에 발견했던 오류를 해결했다. 원인은 다른 모든 파일들에서는 의존성 주입 코드를 사용하는데, UserDao 내에서 실습해보았던 의존관계 검색 코드를 사용했기 때문이었다...! 저번 시간에 알아본 방법 외에도, Spring 에서는 다양한 방법을 통해 DI 의존관계 설정정보를 만들 수 있다고 한다. 그 중 대표적인 방법이 XML 을 사용하는 것이다. 이번 시간에는 이전에 만들었던 것과 동일한 의존관계를 XML 을 통해 만들어보았다. DaoFactory 의 @Bean 메서드에 담긴 정보를 1:1 로 XML 의 태그와 애트리뷰트로 전환해주기만 하면 된다. @Bean 은 bean 태그로, 메서드 이름은 id 어트리뷰트로, new 에 사용하는 클래스 이름은 class 어트리뷰트로 대응해서 작성한다. 의존..

간혹 전체 프로그램 내에서 단 하나의 객체만 만들도록 보장해야 하는 경우들이 있다. 이를 Singleton 이라고 부른다. 이를 구현하기 위해서는, 클래스 외부에서 new 연산자로 생성자를 호출할 수 없도록 막아야 한다. 생성자를 외부에서 호출할 수 없도록 private 접근 제한자를 붙여주면 된다. 대신, 외부에서 호출할 수 있는 static 메서드를 하나 선언해주면 된다. 아래의 getInstance 메서드는 단 하나의 객체만 리턴하게 된다. package test_classes2; public class SingletonTest { private static SingletonTest singleton = new SingletonTest(); private SingletonTest() {} stati..

Java 에는 byte, short, int, long, float, double 그리고 char, boolean 8 개의 기본 데이터 타입이 있다. public class Main { public static void main(String[] args) { System.out.println(Byte.MAX_VALUE); System.out.println(Byte.MIN_VALUE); System.out.println(Short.MAX_VALUE); System.out.println(Short.MIN_VALUE); System.out.println(Integer.MAX_VALUE); System.out.println(Integer.MIN_VALUE); System.out.println(Long.MAX_V..

이번에는 Firebase 와 App 을 연결하여 로그인 및 회원가입 기능을 구현해보았다. 우선 firebase 홈페이지에서 간단한 절차를 통해 프로젝트를 생성해주는 과정을 거쳤다. (홈페이지 UI 를 따라가면 쉽게 생성할 수 있다) 그 후 프로젝트 내에 firebase 를 설치해주어야 했다. npm install firebase 그 다음으로 프로젝트 내에 firebase.js 라는 파일을 생성해준 다음, firebase 홈페이지에서 제공해주는 정보를 바탕으로 코드를 입력해주었다. // Import the functions you need from the SDKs you need import { initializeApp } from "firebase/app"; // TODO: Add SDKs for Fir..

이번 시간에는 React Navigation 을 활용하는 방법에 대해 알아보았다. React Navigation 은 React Native 애플리케이션에서 화면을 전환하고 탐색하기 위해 사용되는 라이브러리이다. 이를 사용하면 사용자가 화면 간에 이동할 수 있도록 스택, 탭 또는 드로어 형태의 네비게이션을 구성할 수 있다고 한다. 우선 이를 아래 명령어를 통해서 다운 받는다. npm install @react-navigation/native @react-navigation/native-stack npm install react-native-screens react-native-safe-area-context React Navigation 을 사용할 때 우선 App.js 에서 @react-navigation..