전체 글 333

나의 WAS 변경점, 한계 그리고 개선사항

지난 내용은 여기와 같다. https://b1ackhand.tistory.com/262 이후에 나의 WAS를 어떻게 발전시켰고 어떤 문제점을 마주했는지 기록해보려고한다. 발전사항 및 변경점 나의 구조를 요약하자면 Request에서 api 처리를 Response에서 정적인 컨텐츠를 반환한다. 그림으로 보면 위와 같다. 다음으로 구현해야 될 내용은 Post요청 -> Session 로그인 -> 동적인 HTML -> 게시판 처리 이와 같다. 먼저 Post요청을 처리하기 위해 Request에 Body Parser라는 클래스를 만들어줬다. Post요청에서 지금은 post request x-www-form-urlencoded 형태로 들어오지만 다른 스프링 프로젝트를 해보면 json형태로 오거나 다양한 형태로 오기 때..

MVC패턴 왜 쓸까요

네.. 사실 저도 잘 모릅니다. Spring 하면서 MVC패턴 학습이 딸려오는데, WAS제작 하면서 그룹회고를 했을때 많은 팀원들이 MVC패턴을 따라가는 것을 보았고 더 알아보고자 정리 해보게 되었습니다. MVC 의미 Model : 데이터와 비즈니스 로직관리 View : 레이아웃과 화면 처리 Controller : 모델과 뷰로 명령을 전달 MVC패턴은 디자인 패턴중 하나로 비즈니스로직과 화면을 구분하는데 중점을 두고 있다. 사용자가 Controller에 요청을보내면 Model에서 처리를 하고 View를 반환한다. 왜 스프링이 MVC 패턴인지를 알기 위해서는 스프링에대해서 더 이해해야할 것 같다. MVC 패턴 에서도 구조가 여러가지 있고 그중에서도 Spring 구조 에 관해서 유명한 위의 그림이 있다. 각..

Generator

알고리즘 문제 푸는것을 포기한 것이 아니다. 잘 순항중이다. 하지만, 난이도 높은 문제에 시간을 투자하는 것도 중요하고 좋아하지만 하나 풀때마다 정리하기에 시간이 많이들고 쉬운 문제는 정리하기에 오버헤드가 크다고 생각한다. 또한, 지금은 개발 분야 공부를 하고 있기에 온라인 대회에 나왔던 쉬운 문제들을 하루에 하나씩 풀면서 살아가고 있다. 그 와중에 숙제 처럼 남겨 뒀던 문제가 있다. https://www.acmicpc.net/problem/8481 8481번: Generator Your program should print the content of the file geni.out to the standard output. Your output may contain additional white spa..

if문을 줄이는 방향에 대한 고찰

WAS를 이어서 개발중에 response 반환형을 index.html에서 json등으로 확장하기위해서 hashmap 형태를 byte[]로 변환했고 이 과정에서 각기 다른 html, css, js를 if 문으로 casework하기에는 가독성이 너무 떨어지기 때문에 어떻게 처리해야될까 고민하게 되었다. if(MIME == HTML){ // } else if(MIME == CSS){ // } 이런형태가 되지 않을까 싶다. MIME타입의 경우에는 개수가 정해져있어서 switch문등으로 처리해 줄 수 있지 않을까 싶지만 비슷한 다른 상황에 확장가능성까지 고려한다면 어떻게 해야할까? 예전에도 비슷한 상황이 카카오테크캠퍼스 최종프로젝트 때 있었다. 당시에는 gpt한테 물어볼 생각을 못해서 멘토님께 물어봤는데 친절하게..

자바의 멀티스레드

WAS구현 중 첫번쨰 요구사항 중 하나가 Java Thread기반으로 작성되어 있는 현재 프로젝트를 Concurrent패키지를 사용하도록 변경하라는 것이었다. 멀티 쓰레드 프로그래밍도 운영체제 시간 과제로 한번 써본거 외에는 사용해본적이없고 해당 요구사항 중 스레드 모델과 버전별 변경점에 대해 학습하라는 내용이 있어 공부해보게 되었다. 우선 Concurrent패키지가 무엇인지 먼저알아보자. https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/package-summary.html java.util.concurrent (Java Platform SE 8 ) Class Summary Class Description AbstractExecutorSer..

HTTP Response, Request에 관하여

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다. 정말 자세한 내용은 https://www3.ntu.edu.sg/home/ehchua/programming/webprogramming/HTTP_Basics.html In Introduction to HTTP Basics HTTP (HyperText Transfer Protocol) Basics Introduction The WEB Internet (or The Web) is a massive distributed client/server information system as depicted in the following diagram. Many applications are running concurrently over t..

몰랐던 Git에 관한 이야기

대학교 처음 들어와서 동아리에서 게임개발을 배우고 함께 배웠던 것이 Git 사용법이다. 깃은 버전 관리 툴로 개발 할 때 협업이나 프로젝트 관리 면에서 도움을 주는 도구다. 게임 개발 뿐만아니라 웹 프로젝트, 알고리즘 문제 기록 등 여러 방면으로 써왔고 사용법이 익숙하지 않을 때 빨간 줄로 이유를 알 수 없는 오류가 뜨면 파일을 지우고 깃을 다시 clone 해오거나 했었는데 이제는 능숙하게 merge 할 수 있다. 그래서 나는 내가 git을 잘 활용 하고 있는줄 알았다. 어떤 강의를 듣기 전까지 Git 객체에 해당하는 것들을 고르시오. 라는 간단한 퀴즈였고 나는 처음 들어보는 용어였다. Git에 객체라는게 있었나? 놀랍게도 있다. https://git-scm.com/book/ko/v2/Git%EC%9D%..

WAS란 무엇인가?

이번에 개인 프로젝트로 정적인 컨텐츠를 처리하는 WAS만들기를 JAVA로 개발하게 되었다. 스프링에 있는 기능들만 사용해 봤던 나는 WAS..? 어디서 들어 봤던 건데 싶었다. 첫 번째 요구사항으로 받은 것이 index.html을 브라우저에 띄우는 것 이었다. 해당 요구사항을 보고 바로 개발을 시작한 사람들도 있었지만 나 같은 경우에는 내가 무엇을 어떤일을 해야되는 프로그램을 만들어야 되는지를 알아보는 것으로 시작하게 되었다. Wiki백과에서의 정의를 보면 다음과 같다. WAS ( Web Application Server ) 는 웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크 - 프로그램 실행 환경과 데이터베이스 접속기능 제공 - 여러개의 트랜잭션 관리 - 업무 처리..

소프티5 후기

현대자동차 소프티어 부트캠프에 참가하여 첫 일주일은 OT및 여러 강의들을 들었고 어느 날 부터 소프티5 라고 불리는 프로젝트를 시작하게 되었다. 왜 소프티5냐? 먼저 기획1 디자인1 개발3~4를 랜덤으로 팀원으로 짜서 총 15개의 팀이 나왔다. 그리고 단 5일동안, 기획 디자인 개발하여 간단한 프로토타입을 만드는 것이다. 목요일~다음주 수요일 오후 발표이기 때문에 실질적으로 주말을 포함하면 더 많긴 하지만... 아마 그런 의미가 아닐까 싶었다. 개발의 경우에는 FE / AOS 1 + BE 3 으로 팀이 구성되었다. 1일차 첫날에는 팀원들끼리 아이디어 회의를 하였다. 모빌리티라는 주제를 가지고 시장조사를 해보고 여러 기업들이 어떤 방향성을 가지고 있는지 알아 봤었다. 시작 전에는 모빌리티라는 것 자체가 자..

매우 뒤늦은 카카오테크캠퍼스 1기 최종프로젝트 소개

카테캠 수료를 한지 두달이 지났다. 수료한 다음달 12월에는 이번학기 카테캠 + 현장실습으로 고생했으니 좀만 쉬어야지 라는 마인드 였지만 싸피 면접, 소프티어 시험을 준비했었다. 카테캠 마지막에 팀원들한테 꼭 정리하세요 말해놓고 내가 안하고 있는것도 웃긴 일이었다. 준비했던 싸피 소프티어 모두 붙게 되었고 나는 소프티어를 선택하게 되었다. 면접이나 시험내용 후기는 기밀이라 리뷰안하려고 한다. 소프티어는 오프라인 교육이라 상경하게 되었고 나는 올라가는 날을 기다리며 가족, 친구들과 놀았다. 그래서 해야지 해야지 하다가 이 지경까지 오게 된것이다. 기억이 가물가물 하지만 프로젝트로 뭘 했는지 적어보려고 한다. 기획 카카오측에서 전남대, 부산대 학생들을 여수 마리나 호텔? 리조트?에 2박 3일동안 가둬놓고 아..