Back-end

    Go Fiber 간단한 예제

    이번에는 go를 이용해서 웹서버를 만들어보려구 한다! go에는 기본적으로 `net/http`라는 내장 패키지가 존재하고 github의 여러 개의 웹프레임워크가 존재하는데 이쪽에 가면 go web framework를 잘 정리해놔서 참고하면 좋을 것 같다! 아래는 간단하게 net/http를 이용해서 http req를 처리하는 코드이다. `http.HandleFunc`을 이용해서 새로운 핸들러를 등록할 수 있고 `ListenAndServe`를 통해 몇번 포트로 listen할지 정할 수 있다. `http.Request`는 request와 파라미터에 대한 정보를 담고 있다. GET 요청에 대한 파라미터를 받으려면 `r.URL.Query().Get("test")`를 이용하면 되고 POST에 대한 데이터를 가져올 경..

    Go 맛보기

    관심 있었던 컨테이너 기술들이 go라는 언어로 이루어져있고 devops 쪽을 공부하다보니까 관련 기술들이 go로 이루어지는것들이 좀 있어서 go라는 언어에 대해 평소 배우고 싶기도 했고 그래서 golang을 시작!! 일단 언어에 대한 기본적인 지식을 쌓기 위해서 해당 사이트들 참고를 했어요 https://gobyexample.com/ http://golang.site/Go/Basic https://gowebexamples.com/ go build를 하면 exe 실행파일로 만들어주고 go run하면 실행!! 예전에 수업에서 듣기론 go가 다른 python이나 js와 다르게 pip npm으로 패키지를 설치하는걸 go라는 커맨드로 다 할 수 있다고 했던 것 같아요,, go를 실습해보기 위해선 goland를 이..

    Apache2와 내장 톰캣 연동 with springboot

    처음에 ip(특정 포트 지정!)로 하다가 도메인으로 하다보니 내장 톰캣이 떠있는 8000번 포트가 아니라 http는 80번 포트 https는 443번 포트로 연결되다 보니 어떻게 할까 고민하다가 apache를 띄우고 apache를 내 내장 톰캣에 연동할 수 있는 방법을 찾았다..! 먼저 sudo apt-get install을 통해 apache2와 mod_jk를 다운 받았고 sudo systemctl start apache2.service 를 통해 서버를 켜서 내 도메인으로 연결되었을때 디폴트 index.html이 잘뜨는지 확인한 다음 아래와 같은 설정들을 해줬다! (아래는 추가한 부분입니다) sudo vi /etc/apache2/apache2.conf LoadModule proxy_module /usr/..

    intelliJ 명령어 정리!!

    Intellj 단축키 cmd+shift+t -> test 생성 cmd+option+v -> 변수 자동 생성 option+enter -> import cmd+shift+enter -> 끝에 자동완성 후 줄넘김 cmd+/ -> 선택한 줄 주석처리 cmd+n ->getter or setter cmd+b -> class나 method 클릭시 그 class로 넘어감 cmd+o -> class 찾기 cmd+p -> 생성자 매개변수에 뭐가 들어가야하는지 알려줌 cmd+e -> recent 파일 찾기 shift+tab -> 자동 줄 정렬 ctrl+shift+j ->두줄을 한줄로 합침 option누른 상태로 줄 선택하면 동일한 내용이 드래그 psvm -> main methd생성 soutv-> println 자동생성 cm..

    Spring SOLID 원칙 및 기본 개념

    SOLID의 원칙 SRP(single responsibility principle) 단일 책임 원칙 중요한 기준은 변경! 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른것! OCP(open/closed principle) 개방-폐쇄 원칙 ***가장 중요 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 함 → 역할(인터페이스)과 구현(구현 클래스)의 분리, 다형성을 활용 그 전에 했던 memberservice에서는 구현 객체를 변경하려면 클라이언트 코드의 변경이 필요 즉 다형성을 사용했지만 OCP 원칙을 지킬 수 없게 되는 문제점 발생 → 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자가 필요 → 이것이 spring container인 DI, Ioc container L..

    JSP EL(Expression Language)

    EL 사용 이전까지는 jsp파일에서 request에서 getAttribute를 통해 값을 꺼내서 코드블록으로 값을 화면에 띄웠는데 EL방식을 이용하면 코드블록을 사용하지 않고도 view코드를 작성할 수 있다. 입니다. //원래 코드블록 방식 ${model} // list를 불러올때 원래 코드블록 방식 ${lists[0]} EL 의 데이터 저장소 pageContext - page내에서 사용할 수 있는 저장소 request session application page > request > session >application 순으로 값을 꺼내오기 때문에 같은 name을 가진 변수를 불러올땐 이 우선순위를 따른다. 하지만 특정한 한 위치에 있는 저장소에서 불러오기 위해선 내장 객체를 이용하면 된다 ${page..

    JSP MVC model1 & model2 방식

    앞서 model1 방식은 model과 view controller 가 결합된 방식으로 jsp에서 흔히 코드 블록으로 java 코드를 삽입하는 방식을 말한다. 입니다. 하지만 이와 반대로 model2 방식은 controller와 view가 물리적으로 분리된 방식으로 controller에서 포워딩해서 view쪽으로 흐름을 전달하는 방식이다.(dispatcher를 통해서 forwarding된다.) package com.newlec.web; import jakarta.servlet.RequestDispatcher; import jakarta.servlet.ServletException; import jakarta.servlet.annotation.WebServlet; import jakarta.servlet.h..

    JSP 코드 블럭

    Jasper는 jsp파일의 html 코드를 out.write라는 코드를 붙여서 java로 실행되게 해준다. (filename.jsp 파일을 filename_jsp.java로 변환해서 실행) jsp파일은 html파일과 다르게 java코드를 코드 블럭을 이용해서 작성할 수 있는데 일반적으로 변수를 선언할때는 기본적인 코드블럭을 쓰며 \ 값을 출력할때는 다음과 같은 코드 블럭을 쓴다. %뒤에=을 붙이면 Jasper는 이 코드를 java파일에서 out.print(x+y)로 변환시켜준다. 메소드를 선언할 때 코드 블럭에는 !를 붙여주면 된다. 또한, Page 지시자라는 것도 존재하는데 이는 페이지를 어떤 방식으로 인코딩할지 지정하는 지시자 역할이다.

    servlet get,post 메소드에 특화된 서비스 함수

    이전까지는 service라는 메소드를 통해 post와 get요청 모두 다 처리했지만 get,post 요청에 따라 특화된 서비스 함수를 사용할 수도 있다. @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("post req"); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("get req"); } 물론 s..

    servlet cookie를 이용한 상태 유지

    이전까지 공부했던 application(servletcontext)와 session은 서버 측에 저장하는 상태 값이였다면 앞으로 공부할 cookie는 client 쪽에서 갖고 있는 상태 값 저장소이다. cookie를 처음 보낼 때는 WAS측에서 client 측으로 쿠키를 만들어서 보내준다 Cookie cookie = new Cookie(key,value); res.addCookie(cookie); 그 다음 서버 측에서 필요할 때마다 client의 cookie를 읽을 수 있다. Cookie[] cookies = req.getCookies(); //쿠키가 하나가 아니라 여러개로 심어질 수 있기 때문에 배열로 옴 String _c = ""; if (cookies != null) for (Cookie cooki..