분류 전체보기

CS 👩🏻‍💻

[CS] Tomcat에 대해 알아보자

톰캣 톰캣이란 Apache Software Foundation에서 개발한 오픈 소스 웹 서버 및 서블릿 컨테이너로 애플리케이션을 실행하는 프로그램 또는 컨테이너이다. 흔히, 아파치 톰캣이라고 부르지만 아파치 서버와 톰캣을 착각하지 말자! 아파치 톰캣? https://velog.io/@kdhyo/Apache-Tomcat-%EB%91%98%EC%9D%B4-%EB%AC%B4%EC%8A%A8-%EC%B0%A8%EC%9D%B4%EC%A7%80#%EC%95%84%ED%8C%8C%EC%B9%98-%ED%86%B0%EC%BA%A3%EC%9C%BC%EB%A1%9C-%EB%B6%80%EB%A5%B4%EB%8A%94-%EC%9D%B4%EC%9C%A0에 따르면 아파치와 톰캣의 기능은 나뉘어져 있지만, 톰캣 안에 있는 컨테이너..

Algorithm 👩🏻‍🔧

[BOJ 20529] 가장 가까운 세 사람의 심리적 거리(비둘기집 어렵지 않아요!!!!!! 초간단)

20529 가장 가까운 세 사람의 심리적 거리 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Collections; // 가장 가까운 세 사람의 심리적 거리 public class Main { // 테스트 케이스 T // 학생 후 N, // 엠비티아이 각각의 수 public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = ..

CS 👩🏻‍💻

MIME 타입 알아보기

카카오 테크 캠퍼스 2주차 실강 중 MIME 타입이라는 용어가 등장하였다. 시간관계 상 강사님은 설명을 생략하셨지만 꼭 알아야 하는 개념이니 학습하라고 말씀해주셨고 MIME 타입에 대해 정리가 필요하였다. MIME 타입 MIME 미디어 타입이란 메시지 엔티티 부분의 콘텐츠를 설명하는 표준화된 이름이다. 브라우저들은 리소스를 내려받았을 때 해야 할 기본 동작이 무엇인지를 결정하기 위해 대게 MIME 타입을 사용한다. MIME 배경 MIME 타입은 본래 멀티미디어 이메일(MIME : Multipurpose Internet Mail Extensions) 을 위해 개발되었지만, 데이터 객체의 포맷과 목적 설명이 필요한 HTTP를 비롯해 여러 다른 프로토콜에서 재사용되어 왔다. MIME은 다섯 가지의 근본 자료로..

카카오테크캠퍼스/2단계

[1주차 과제] 추가 기능 도출 및 API요청 분석

1주차 과제는 아래의 내용들로 이루어져 있었다. 요구사항 분석/API요청 및 응답 시나리오 분석 요구사항 추가 반영 및 테이블 설계도 과제를 진행하면서 강사님의 말씀처럼 최대한 러프하게 생각하고자 했다. 첫 요구사항 분석부터 디테일하게 가면 오히려 힘들어질 것 같아서 러프하게 하는 것을 추천하신 것 같다. 1주차 과제는 총 4문항으로 이루어져 있다. 💡 과제 설명 요구사항 시나리오를 보고 부족해 보이는 기능을 하나 이상 체크하여 README에 내용을 작성하시오. 추가 기능 도출 요구사항에 있는 화면에서 도출하자 전체 상품 목록 조회 전체 상품 목록 조회 라벨링별 목록 조회(무료배송 등) 개별 상품 상세 조회 상품 내용 조회 상품의 옵션 목록 조회 회원가입 이메일 중복 체크 중복 검사 이메일 형식 유효성 ..

독서📚

[자바의 정석] 1. 자바를 시작하기 전에

JDK 자바로 프로그래밍하기 위해서는 먼저 JDK가 설치되어야 한다. JDK에는 JVM과 Java API뿐만 아니라 자바를 개발하는데 필요한 프로그램들이 설치된다. JDK의 bin디렉토리에 있는 주요 실행파일들은 javac.exe - 자바 컴파일러, 자바소스코드를 바이트 코드로 컴파일한다. java.exe - 자바 인터프리터, 컴파일러가 생성한 바이트코드를 해석하고 실행한다. javap.exe - 역어셈블러, 컴파일된 클래스파일을 원래의 소스로 변환한다. 등이 있다. 자바로 프로그램 작성하기 자바코드를 실행하려면 먼저 자바컴파일러(javac.exe)를 사용해서 소스파일(.java)로부터 클래스 파일(.class)을 생성하여한다. 그 다음에 자바 인터프리터(java.exe)로 실행한다. 프로그램 작성 시 ..

카카오테크캠퍼스/2단계

[카테캠 2단계] API 요청해보기

카테캠 2단계 과정 이수 중 실시간 강의를 수강하며 학습한 내용들을 정리한 내용입니다. 1. DTO 객체의 필요성 프론트가 편하게, 최대한 바로 사용할 수 있게 json을 제공하는 것이 좋은데, 때문에 DTO 객체가 탄생되게 되었다. Response의 Body가 통일되지 않는다면 프톤트에서 공통된 처리를 하기가 힘들 수 있다. 또한, dto에는 해당 화면에 뿌려줄 값들을 바로 뿌릴 수 있도록 구성해야 한다. 2. JWT 로그인 시에 JWT를 사용할 수 있는데 보통 JWT는 요청 시 Authorization 헤더에 포함하여 통신하게 된다. 하지만 사실 JWT는 쉽게 Decode가 바로 가능하며, 때문에 JWT는 보안을 위한 것이 아닌, 신뢰성을 위한 것이라고 생각해도 좋다. 3. 백엔드 개발자 원칙 클라이..

카카오테크캠퍼스/2단계

[카테캠 2단계] 1일차 2단계 클론코딩 과정 보기

강의 시작 전 테스트 코드를 짜야 하는 이유 프론트(React.js)는 3000번 포트 사용하고 백엔드(Spring Rest API)는 대게 8080번(또는 80번) 포트 사용하며, 배포를 하기전 프론트의 레퍼런스 코드를 실행할 수 있도록 주소요청 테스트를 연결하여 실행하게 된다. 더 자세히 말하자면, 아래의 클론코딩 전반적인 과정에 따라 우리는 도커 기술로 제작되어 있는 카카오 크램폴린의 가상화 컴퓨터를 사용한다. 그런 후 D2Hub를 통해 빌드하고 jar파일을 kargo에 배포하게 되는데, 우리가 배포한 jar 파일 속 코드들이 배포된 환경에서 잘 돌아간다고 확신할 수 없기에 테스트 코드를 작성해야 하는 것이다. 카카오 크램폴린이란? 도커 기술로 제작되어 있으며 카테캠 2단계 기간동안 우리는 카카오 ..

카카오테크캠퍼스

[카카오테크캠퍼스] 1단계 회고와 2단계 시작하기

1단계가 끝나고 어느덧 2단계에 접어들었다. 1단계는 학기 중이라 시간이 너무 빠르게 지나가기도 했고 학업과 병행해서 진행하다보니 온전히 카테캠에 집중하지 못했던 것 같다. 때문에 2단계를 시작하는 이 시점에서 1단계를 보내주는 회고 겸, 새로운 마음으로 2단계를 맞이하기 위해 글을 작성해본다. 1단계 카카오테크캠퍼스의 1단계 커리큘럼은 크게 '패스트캠퍼스를 통한 강의 제공 + 중간중간 특강 + 주간 학습일지 작성' 으로 이루어져 있었다. 좋았던 점 사실 학습일지는 혼자서 매일 써왔고 강의도 카테캠만을 위한 강의가 아닌 패스트캠퍼스(물론 공짜로 주는 건 좋다)이기 때문에 가장 특별했던 것은 특강이었다. 특강은 3차례 정도로 깃/깃헙 특강부터 남기웅 카카오 CHO, 백엔드 개발자 최범균님까지 쉽게 들을 수..

CS 👩🏻‍💻

mermaid를 이용한 쉽고 빠른 다이어그램 만들기

어느날 개발 전, 시퀸스 다이어그램의 필요성에 대해 알고 첫 시퀸스 다이어그램 그리기(https://mincanit.tistory.com/16)에 도전했다. 학교 수업 과제로 그리고, 그 이후에는 그려본 적이 없는데 프로젝트에 적극 활용하기로 한 만큼 바로 그리려했지만,,, 기존의 툴들은 잘 나와있다고 하지만 나는 그조차도 귀찮았다. 툴은 말 그대로 단지 수단이기 때문에, 나는 쉽고 빠르게 사용할 수 있는 다이어그램 툴을 원했고 mermaid에 대해 알게 되었다!! Mermaid https://mermaid.js.org/는 마크다운을 통해 빠르게 다이어그램을 작성할 수 있다. 지원하는 다이어그램도 많고 Visual Studio에서는 Extension 설치를 지원하기 때문에 매우 간단하게 사용이 가능했다...

CS 👩🏻‍💻

시퀸스 다이어그램 시작하기

2차례의 프로젝트 기간동안 설계에 집중하기보다는 그냥 돌아가는 프로그램을 작성하는 것이 중요했다. 때문에 과정이 생략/뒤바뀐 개발들을 진행했고 어떤 기능을 개발했는지를 한눈에 파악하기에 어려웠고, 과연 효율적인 개발 방식이었을지에 대해 고민하였다. 그러다 설계의 중요성에 대해 깨달았고 그중에서도 시퀸스 다이어그램을 적극 활용하기로 했다. 갑자기 시퀸스 다이어그램? 내가 활동하는 개발 동아리인 에코노베이션에서는 매주 주간발표를 통해 프로젝트 관련 내용들을 공유하는 시간을 가진다. 어떤 점에 대해 공유를 해야한다! 라는 틀이 전혀 없긴 하지만, 대부분은 프로젝트 과정 중 겪은 트러블 슈팅 또는 개발 과정 등에 대해 공유를 한다. 이번에 다른 교외 대외활동으로 오랫동안 쉬시다가 활동을 다시 시작하신 분이 새로..