들어가며안녕하세요, 개발자 비니입니다. 그동안 외부 프로젝트와 회사일로 바빠서 통 글을 못 썼었네요..생각해 보니.. 아주 기본적인 걸 잊고 있었던 것 같아정리해 보려 합니다.S.O.L.I.D 란?"객체 지향 프로그래밍을 수행하는 데 있어 지켜져야 한다는 5개의 소프트웨어 개발 원칙"이는 단골 면접 질문이라고도 할 수 있지요?여러 디자인 패턴들 또한 SOLID 원칙에 입각해 만들어진 것이라, 이를 확실히 알고 넘어가면 나중에 이점이 많습니다. 아래 표에 작성 된 요소들의 앞 글자를 때서 부르는 것이다.SRP단일 책임 원칙OCP개방 폐쇄 원칙LSP리스코프 치환 원칙ISP인터페이스 분리 원칙DIP의존 역전 원칙 SOLID 원칙을 왜 지키는 걸까?"좋은 설계"가 실제로 이루어지면, 개발자들은 코드를 확장하거나..
들어가며안녕하세요, 개발자 비니입니다.최근 동시성이 요구되는 환경이 많아지면서, 비동기 및 동기 처리에 대한 중요성이 높아지고 있죠?활발한 커뮤니티, 게임 채팅등 많은 곳에서 쓰이고 있어요. 이번에 Java에서 이러한 개념들이 어떻게 구현되는지,남겨보려 합니다. 이전에는 C/C++에서 Mutex와 세마포어만 사용했었거든요!비동기 프로그래밍이란"작업이 완료될 때까지 기다리지 않고, 다른 작업을 동시에 수행할 수 있도록 하는 프로그래밍"쉽게 말해, 자원 활용을 최적화하면서 애플리케이션 응답을 빠르게 받아내는 거죠. 간단히 예를 들어보면,우리가 웹 사이트에 사진을 업로드하는 동안, 메시지나 영상을 볼 수 있는 기능을 구현하는 거죠! 더 쉽게 예를 들어보면,우리가 워드 문서를 열고 컴퓨터가 읽고 있는 동안키보드..
들어가며안녕하세요, 개발자 비니입니다.웹 암호학의 시작이자, 웹 인증 시스템을 공부할 때가장 먼저 나오는 내용 중 하나인 JWT를 들고 왔습니다. 사실 사람들은 JWT를 사용할 줄만 알지, 실제 로직을 잘 모르는 경우가 많은 것 같아요.이 참에 뭔지 스스로 정리할 겸 기록을 남겨보고자 합니다.JWTJson Web TokenJson 형식으로 발급되는 웹 토큰이란 뜻입니다. 정확히 이야기하면,정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰입니다. 서버와 클라이언트가 통신할 때,인증 정보를 서로 주고받을 때 주로 사용되고 있어요.최근에도 웹 개발을 한다고 하면, Session 방식이나 JWT 방식으로 개발을 하곤 하죠. 토큰 내용은 표준규약에 따라 생성한 토큰이에요.중간에 탈취하더라도 복잡한 stri..
들어가며안녕하세요, 개발자 비니입니다.면접이라던지, 종종 JAVA를 사용하는 기업들에서 "JAVA x버전은 왜 쓰죠?"라는 말이종종 나오고 있는 것 같아요. 저도 이에 명쾌하게 답을 못 했어서,이 참에 뭔지 스스로 정리할 겸 기록을 남겨보고자 합니다.LTS란? Long Term Support 말 그대로 "장기 지원 버전" 이라는 뜻이긴 합니다.하지만 정확히 말해서, 저는 "일반 기간보다 더 오래 지원하도록 하는 버전"이라 생각합니다.여기서 지원한다는 말은, 새로운 기술을 넣는다는 것보단,발생하는 버그를 수정하고, 유지보수 해 준다는 말입니다. 대표적으로JAVA 8 / 11 / 17 / 21 들이 LTS입니다. 💫 "왜 LTS를 주로 사용하나요?"JAVA는 많은 사람들에게 사랑받고, 사용되어오고 있죠.하..
들어가며안녕하세요, 이젠 누군지 다들 아실법한 풀스택 개발자 비니입니다.마이크로서비스 아키텍처가 떠오르고, 클라우드 시스템이 발전하면서REST 구현 능력에 대한 언급이 자주 등장하고 있는 것 같아요. 이 REST API, 이게 뭔지 스스로 정리할 겸 기록을 남겨보고자 합니다.REST란? Representational State Transfer.REST는 자원을 URI로 식별하고, HTTP Method를 활용해 자원의 상태를 전송하는 스타일입니다. 더 확실하게 말하면,자원을 URI를 통해 명시하고, HTTP Method를 통해 적용하는 것을 의미합니다. - HTTP Method?1. POST, GET, DELETE 등, 어디선가 들어 본 메소드들이 HTTP Method로 불립니다.2. REST에서는 "CR..