본문 바로가기

분류 전체보기112

비전공 개발자 국비 수료 후 취업 회고 2022년 4월부터 10월까지 6개월 간 국비 지원 교육 과정을 수강했다. 이 짧은 기간은 내 인생에 큰 터닝 포인트가 되었다. 수료 후기를 남길까 하다가 취업까지 하고 취업 회고를 남기고 싶었고, 다행히 감사하게도 첫 번째 취준에 합격하게 되어 이렇게 글을 남길 수 있게 되었다. 새로운 도전 나는 비전공자 중에서도 정말 비전공자, 인문대 출신이다. 인문학 공부를 좋아했고 잘하기도 했지만, 진로에 대해서는 고민이 많았다. 인문학으로는 내가 원하는 미래를 그려나가기 어려워 보였기 때문이다. 나는 빠르게 변화하는 세상에서 나도 같이 변화하고 직접 변화를 불러일으킬 수 있는 사람이 되고 싶었다. 물론 당연히 인문학자로서 그렇게 하고 계시는 대단한 분들이 계신다. 인문학을 좋아하고 그 중요성에 공감하기에 결코 .. 2023. 1. 7.
[Oracle Cloud] 리눅스 서버에 배포하기 - FileZilla로 war 배포 목차 오라클 클라우드를 이용해 리눅스 서버에 프로젝트를 배포하는 방법에 대해 알아보겠습니다. 이 글은 다음 사항이 완료된 후의 과정입니다. 오라클 클라우드에서 VM 인스턴스를 생성하며 SSH키를 발급받고 고정 IP를 할당받음 오라클 클라우드에서 데이터베이스를 생성하고 프로젝트와 연동 PuTTY로 SSH 접속 서버 컴퓨터에 자바와 톰캣 설치 ([Oracle Cloud] 리눅스 서버에 배포하기 - Java 8, Tomcat 8.5 설치) 개발 및 배포 환경은 다음과 같습니다. Oracle Linux 8.6 Java 8 Apache Tomcat 8.5 Eclipse Maven 배포하는 방법이 여러 가지 있겠지만, 이번 글에서는 처음 시도하기에 가장 쉬운 방법인 FileZilla로 war 파일을 배포하는 방법을.. 2022. 10. 30.
[Oracle Cloud] 리눅스 서버에 배포하기 - Java 8, Tomcat 8.5 설치 목차 오라클 클라우드를 이용해 리눅스 서버에 프로젝트를 배포하는 방법에 대해 알아보겠습니다. 로컬에서 개발할 때 JDK와 Tomcat을 설치했듯이 서버 컴퓨터에도 JDK와 Tomcat을 설치해야 합니다. 이 글은 다음 사항이 완료된 후의 과정입니다. 오라클 클라우드에서 VM 인스턴스를 생성하며 SSH키를 발급받고 고정 IP를 할당받음 오라클 클라우드에서 데이터베이스를 생성하고 프로젝트와 연동 PuTTY로 SSH 접속 개발 및 배포 환경은 다음과 같습니다. Oracle Linux 8.6 Java 8 Apache Tomcat 8.5 Eclipse Maven 업데이트 sudo yum update JDK 1.8 설치 sudo yum install -y java-1.8.0-openjdk-devel.x86_64 해.. 2022. 10. 29.
[Spring] EL/JSTL에서 list contains - 리스트에 값이 포함되는지 알고 싶을 때 목차 EL/JSTL 태그를 사용할 때, 리스트에 값이 포함되는지 판단해야 하는 경우가 있습니다. 자바코드로는 list.contains() 메소드를 사용하면 되는데, EL/JSTL 태그로는 어떻게 판단할까요? 몇 가지 방법이 있는데 저는 두 가지를 살펴보도록 하겠습니다. Controller에서 list와 list2를 만들어 jsp 페이지로 전달합니다. @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Model model) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); model.addAttribute("list", list); List lis.. 2022. 9. 26.
[Spring] @RequestBody, @ResponseBody로 JSON 전송하기 목차 클라이언트에서 서버로 HTTP 요청(Request) 메시지를 보내면 서버에서는 클라이언트로 HTTP 응답(Response) 메시지를 보냅니다. HTTP Request와 Response 메시지에는 body, 즉 본문이 존재하는데요, 스프링이 제공하는 @RequestBody, @ResponseBody 어노테이션을 이용하면 body에 JSON 데이터를 담아 데이터를 손쉽게 주고 받을 수 있습니다. 라이브러리 추가 자바에서 JSON 데이터에 대한 처리를 하기 위해 라이브러리를 추가합니다. 대표적으로 Jackson, Gson, SimpleJSON 등의 라이브러리가 있는데, 저는 Jackson 라이브러리를 사용하겠습니다. com.fasterxml.jackson.core jackson-databind 2.13... 2022. 9. 9.
[Spring] RedirectAttributes - 리다이렉트 데이터 전달하기 목차 redirect와 forward 스프링 컨테이너 메소드의 리턴값으로 redirect: 또는 forward: 라는 prefix를 붙여주면 UrlBasedViewResolver가 이를 해석하여 해당 URL 주소로 리다이렉트 또는 포워드 요청이 가게 됩니다. 그런데 forward와 달리 redirect의 경우, 지정된 주소로 새로운 HTTP GET 요청이 시작되기 때문에 실행 이전에 수행된 모델 데이터가 소멸합니다. 따라서 redirect를 할 때는 Request 객체나 Model 객체에 데이터를 담아도 전달되지 않습니다. 다만 기본적으로 리다이렉트시 Model 객체의 속성은 URL 주소의 쿼리 스트링으로 추가되어 전달됩니다. @RequestMapping("/main") public String main.. 2022. 9. 5.
[Spring] 컨트롤러의 리턴 타입 목차 String 뷰 페이지 이름으로서, ViewResolver에 의해 해석됩니다. 프로젝트를 생성하면 기본적으로 servlet-context.xml에 다음과 같이 ViewResolver가 등록됩니다. prefix로 폴더 경로를 지정하고 suffix로 .jps를 붙여 뷰 페이지 지정을 편리하게 합니다. 따라서 다음의 코드는 /WEB-INF/views/main.jsp 뷰 페이지를 요청하게 됩니다. @RequestMapping("/") public String main() { return "main"; } Redirecting redirect: 라는 특별한 prefix를 붙이면 UrlBasedViewResolver가 이를 redirect가 필요하다는 지시로 인식하여 해당 주소로 재요청이 가게 됩니다. 여기에.. 2022. 9. 4.
[Spring] Model, ModelAndView, @ModelAttribute - 컨트롤러에서 뷰로 데이터 전송하기 목차 컨트롤러에서 뷰 페이지로 데이터를 전달하는 몇 가지 방법을 알아보겠습니다. Model / ModelMap / Map 컨트롤러의 메소드를 작성할 때 Model이라는 타입을 파라미터로 지정할 수 있습니다. Model 객체는 컨트롤러에서 생성된 데이터를 담아서 전달하는 역할을 하는 존재입니다. 메소드의 파라미터에 Model 타입이 지정되면 스프링은 특별하게 Model 타입 객체를 만들어서 메소드에 주입하게 됩니다. ModelMap, Map도 Model과 동일한 기능을 수행합니다. Model은 Servlet에서의 request.setAttribute()와 유사한 역할을 합니다. 다음은 Servlet에서 데이터를 Request 객체에 담아 뷰 페이지로 전달하는 코드입니다. request.setAttribut.. 2022. 9. 3.
[Spring] @RequestParam - 요청 파라미터 데이터 파싱하기 목차 @RequestParam @RequestParam 어노테이션을 이용하면 Servlet 요청 파라미터(ex. 쿼리 파라미터, form 데이터)를 컨트롤러 메소드의 인자로 바인딩할 수 있습니다. 스프링 프레임워크를 사용할 때 가장 편리한 기능 중 하나가 파라미터를 자동으로 수집하는 것입니다. 매번 request.getParameter로 데이터를 파싱하던 노동에서 벗어날 수 있게 됩니다. @RequestParam(name = "name") 파라미터 name을 지정하여 파라미터로 전달된 데이터들 중 지정한 이름의 데이터를 파싱합니다. 매개변수로 지정한 변수의 타입이 String이 아닌 경우 자동으로 형변환이 이루어집니다. @RequestMapping(value = "/login1") public Strin.. 2022. 9. 2.
[Spring] @RequestMapping - 요청 주소 매핑하기 목차 @RequestMapping @Controller 또는 @RestController 어노테이션으로 등록된 클래스는 자동으로 스프링 빈으로 등록이 되어 매핑됩니다. 하지만 사용자가 요청한 URL에 매핑하기 위해서는 빈의 매핑 정보를 정의해야 합니다. 이때 사용하는 것이 @RequestMapping 어노테이션입니다. @RequestMapping 어노테이션은 Spring MVC Framework의 RequestHandlerMappingHandler 인터페이스를 어노테이션화한 것으로서, 사용자의 요청을 스프링 Controller 메소드 또는 클래스에 매핑하기 위해 사용됩니다. 클래스 레벨에 사용하면 클래스 내 모든 메소드에 공유되는 매핑 주소로 설정할 수 있으며, 메소드 레벨에 사용하면 특정한 매핑으로 범.. 2022. 9. 1.