전체 글 79

소프트웨어 마에스트로 15기 합격 후기

안녕하세요. 과학기술정보통신부가 주최하고 정보통신기획평가원과 한국정보산업연합회가 주관하는 2024년도 SW마에스트로 과정 제15기 연수생이 되었습니다. 소마를 준비하면서 코테와 면접.. 모두 약하기 때문에 후기를 엄청 찾아보며 준비했는데요. 내년의 저같은 사람을 위해 글을 써보도록 하겠습니다. 지원하게 된 이유 아직 백엔드에 대한 지식이 부족하다고 느끼기도 하고, 돈에 대한 걱정없이 원하는 기술을 맘껏 공부하고 쓸 수 있는 환경이 너무 달다는 것을 알아버렸기 때문에 소마가 유독 더 하고 싶었기도 합니다. 또 사용자들이 실제로 매력적으로 느낄만한 프로덕트를 만들어보고 싶기도 했는데, 소마의 빵빵한 지원과 멘토와 함께라면 가능할 것 같았습니다. 서류 서류는 생각보다 빨리 썼습니다. 지금까지 경험한 내용들, ..

잡동사니 2024.03.25

[우아한테크코스] 팀원들끼리 서로에 대해 칭찬하는 시간을 가졌다.

우아한테크코스의 6차 데모데이가 끝나며 팀 프로젝트가 끝을 보았다. 슬슬 취업 시즌이기도 하고 난 학교로 돌아가겠지만.. 팀원들이 서로에 대해 칭찬을 해주며 자존감을 회복하는 시간을 가졌다. 스스로에 대해 자랑할게 별로 없다고 생각했는데 칭찬 릴레이하면서 은근히 나에게도 장점이 있다는걸 알게 되었다. 특히 버그 킬러라는게 맘에든당. 😝 대학교에서 c언어 수업들을 때 동기들이 이거 웨않되 하는거 자주 고쳐줬는데 그 짬바가 좀 도움 된것 같기도ㅋ.ㅋ 자바가아닌데 뭔상관이야 싶겠지만 아무튼 그럼.

버저닝 ... 2

⬇️버저닝 ... 1편⬇️ 버저닝 ... 안드로이드와 협업을 할 때 버저닝은 필수적이다. 왜냐하면 죽어도 앱 업데이트를 안하는 사람들(대표적으로 나)가 있기 때문 올해 중순까지만 해도 카카오톡 업데이트를 안해서 보이스톡 기능 finger-ineedyourhelp.tistory.com 포스팅 이후에 팀원들과 버저닝에 대해 토의하는 시간을 한번 더 가졌다. "호환성"과 "추후에 강제 업데이트하는 상황"에 대해 생각을 더 해보다가 이야기가 나왔던 것인데, (Major).(Minor).(Patch)에서 Major 버전을 언제 올릴지가 주된 토의 내용이었다. - 기존 특정 기능에 대한 API가 바뀌면 Major를 올린다. 예를들어 회원정보조회 API가 바뀌며 Major 버전을 1에서 2로 올릴때, 서버에서는 1과..

버저닝 ...

안드로이드와 협업을 할 때 버저닝은 필수적이다. 왜냐하면 죽어도 앱 업데이트를 안하는 사람들(대표적으로 나)가 있기 때문 올해 중순까지만 해도 카카오톡 업데이트를 안해서 보이스톡 기능을 못썼다. 지금 쿠팡앱 켜도 맨날 업데이트 하라고 하는데 이악물고 무시중... 핸드폰 저장공간이 부족한 탓이다. 하지만 죽어도 게임은 못지움. 아무리 권태기가 오더라도 언젠간 다시 돌아가기 때문 어쨌든 안드로이드 앱의 버전은 1.1.2 이런 형식인데 (Major).(Minor).(Patch) 이렇게 구성된다. 우리 이돈이면 팀은 대충 Api가 바뀌어서 버전 호환이 안되면 Major 버전이 올라가고, 기존의 Api는 바뀌지 않고 새로운 Api가 추가되거나 비즈니스 로직이 변경되는 정도에서 끝나면 Minor 버전이 올라가고, ..

웹서버와 WAS

정적 콘텐츠와 동적 콘텐츠 정적 콘텐츠로 구성된 정적 페이지는 웹서버에 의해 처리된다. 웹서버는 웹서버에 이미 저장되어있는 파일을 단순 반환 정적 콘텐츠: HTML, CSS, JavaScript, 이미지 등 정적 페이지: 고정된 정적 콘텐츠로 구성된 웹 페이지 동적 콘텐츠로 구성된 동적 페이지는 WAS에 의해 처리된다. 웹서버는 요청을 WAS로 전달하여 애플리케이션 로직에 따라 동적으로 생성된 콘텐츠를 반환 동적 콘텐츠: 사용자의 요청을 처리하고, 데이터베이스나 외부서비스들과 상호작용하며 동적으로 생성된 콘텐츠 동적 페이지: 사용자의 요청에 따라 서버에서 동적으로 생성되는 페이지 웹서버(Web Server) 예를들면 nginx가 있다. 웹서버는 클라이언트로부터 http 요청을 받고 응답을 보내는 역할을 ..

Servlet과 DispatcherServlet

정적말고 동적으로 정보를 처리해보자! Servlet 서블릿 컨테이너에는 여러 서블릿이 모여있다. 웹서버는 클라이언트로부터 요청을 받으면 서블릿 컨테이너 속의 적절한 서블릿에게 요청을 처리"해줘"를 시전 한다. 서블릿은 그걸 처리해주는 역할이다. ServletContainer 서블릿을 지원하는 WAS를 서블릿 컨테이너라고 하는데, 대표적으로는 톰캣이 있다. 서블릿 컨테이너는 서블릿과 웹 서버가 요청과 응답을 주고받을 수 있도록 해준다. 서블릿 컨테이너는 서블릿을 관리한다. 서블릿이 필요할 때, 메모리에 해당 서블릿이 없다면 인스턴스화해서 메모리에 올린다. 그리고 나중에 종료도 시켜준다. DispatcherServlet 그렇다면 웹서버가 보내준 요청을 처리할 적절한 서블릿을 어떻게 찾느냐? Spring MV..

포스트맨으로 MultiPart 파일 보내는 방법!!(사진 첨부해서 요청보내기)

이것이 내가 속한 이돈이면 팀의 게시글 작성 요청 Dto의 모습이다. 이번에 자바 17을 쓰는 김에 야무지게 record 클래스를 써보았다. 이것은 컨트롤러다. Json을 받을때는 @RequestBody를 썼는데, 이번에는 multipart/form-data를 받아서 @ModelAttribute를 붙여야 했다. 아무튼! 우리 프로젝트는 게시글 작성 요청에 이미지 파일이 multipart 형태로 담겨져 와서, 이를 포스트맨으로 테스트 할 수 있는 방법을 찾아보았다. 위에처럼 Body 탭에 form-data를 선택하면, Key의 타입을 Text과 File 중에 선택할 수 있는데, File로 선택하면 Value로 여러개의 파일을 첨부할 수 있다!! 맨날 json만 보내보다가 이렇게 보내보니 조금 신기하다. 어..

[Spring 스프링] 스프링은 뭐지? 왜 스프링을 쓸까?

우테코 레벨2를 시작하는 처음에 궁금했던 내용인데, 스프링 사용법과 미션 구현에 쫓기다가 궁금증을 해결하지 못하고 레벨2가 끝나버렸다. 거기다가 레벨 인터뷰때 도기가 이 질문을 해줘서 나의 빈공간을 잘 찔러주었다. 이렇게 궁금증 해소를 미루던 와중에! 이번 방학때 인프런에서 김영한님의 강의를 듣다가 어느정도 가닥이 잡힌 것 같아서, 생각난김에 이번에 알게된 내용을 정리 해보려 한다. 스프링은 뭐지? 🧐 스프링? 스프링은 여러가지 기술들의 모음이다. 스프링에서 핵심이 되고, 필수적으로 사용되는 기술로는 스프링 프레임워크와 스프링 부트가 있고, 선택적으로 더 많은 기술들을 적용할 수 있다. 스프링 사이트에서 다른 기술들로는 뭐가 있는지 확인할 수 있다. 🧐 스프링 프레임워크? 스프링에서 핵심이 되는 것이 스..

[네트워크] UDP(User Datagram Protocol)

UDP(User Datagram Protocol) TCP의 (데이터를 확실하고 효율적으로 전달하기 위한) 복잡한 기능이 필요하지 않은 경우 - 데이터 송, 수신 전에 제어 정보를 주고 받을 필요X - 연결하고 끊는 단계 필요X - 오류 검사 필요X TCP의 그런 기능이 없어도 낭비가 아닌 경우 - 즉 정보 교환이 한개의 패킷으로 가능하고, 오류가 나면 그냥 다 다시 보내버려도 지장없는 경우 예를 들면 DNS 서버 조회 같은 경우에는 UDP를 사용한다. 또, 음성이나 동영상 스트리밍 같은 실시간 통신이 중요한 서비스에 사용한다. 1. 속도가 빨라야한다. 이때는 컨텐츠 재생 타이밍에 맞추어 데이터를 송수신하는 것이 중요하다. TCP를 쓴다면 복잡한 과정 때문에 타이밍을 맞추기 힘들다. 2. 소량의 데이터 몇..

CS/Network 2023.06.16

[네트워크] OSI 7 layer

OSI (Open Systems Interconnection) 7 계층은 통신에서 사용되는 표준 구조이다. 이 구조는 통신 시스템을 계층적으로 분할하여 생각하고 설계할 수 있도록 돕는다. 각 계층은 특정 기능을 수행하며, 이러한 계층화된 구조를 통해 통신 문제를 나누어서 이해하고 해결할 수 있다. 상위 계층에서는 하위 계층에서 특정 기능이 제공된다고 가정하고, 그 특정 기능에 대한 문제를 푸는 것에서 해방된다. 이로써 상위 계층에서는 자신이 제공하는 기능에 대한 문제를 해결하는 데 집중할 수 있게 된다. 상위 계층은 하위 계층이 제공하는 기능을 이용해서 다른 상위 계층에게 서비스를 제공한다. OSI 7 계층 구조 물리 계층 : 물리적인 신호 교환과 관련된 사항 담당 링크 계층 : 하나의 링크로 연결된 노..

CS/Network 2023.05.28