본문 바로가기

기타9

[CI/CD] CI/CD란? - 지속적 통합/지속적 배포 프로젝트를 진행하며 CI/CD라는 용어대 대해 알아보고 또한 현재 진행중인 프로젝트에 어떻게 적용시키는 게 좋을지에 대해 생각해보는 시간을 가졌습니다. 오늘은 CI/CD에 대한 개념을 알아보도록 하겠습니다. CI/CD? 우선 CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 짧은 주기로 고객에게 제공하는 방법입니다. CI/CD의 기본 개념은 지속적인 통합, 테스트, 서비스, 배포입니다. CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제을 해결하기 위한 솔루션입니다. CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 CI/CD 파이프라인이라고 부릅니다. CI란? Con.. 2021. 12. 28.
다중 서버에서의 Session 불일치 현상과 해결 방법 이제 막 프로젝트를 시작하며 가장 먼저 구현하려고 생각한 것은 회원 로그인 기능입니다. 이 로그인 기능을 구현하기에 앞서, 만약 내가 만든 서비스가 하나의 서버로 감당할 수 없을만큼 성장했을 경우엔 어떻게 해야할까? 부터 고민을 하기 시작했습니다. 이 고민에 대해서 생각하며 Scale-up 과 Scale-out에 대해 알아보았고, Scale-up 을 사용한다면 하나의 서버로 모든 트래픽을 감당해야하기 때문에 위험부담이 크다는 생각이 들었습니다. 그렇기에 Scale-out 방식을 고려하다 보니, 서버가 여러대일 때 Session은 어떻게 관리가 되는지에 대한 질문부터 어떻게 해결해야하는지 고민하는 시간을 가졌습니다. 고민하는 과정과 이를 알아가는 과정을 적어보겠습니다. Session에 대해 그리고 다중서버.. 2021. 11. 7.
Scale-up 과 Scale-out에 대해서 알아보자 서비스를 운영하다 보면 사용자가 지속적으로 증가함으로 데이터 양이 늘거나 CPU나 메모리 사용량이 늘어 하나의 서버로는 감당이 안되는 경우가 존재합니다. 이런 경우 서버 확장을 해야 합니다. 오늘은 서버 확장 방법인 Scale-Up(스케일업)과 Scale-out(스케일아웃) 에 대해서 살펴보도록 하겠습니다. Scale-up (스케일업) 기존 시스템에 CPU, 메모리, 디스크와 같은 내부 컴포넌트 용량을 키우거나 , 이것이 불가능할 경우 새로 더 큰 용량의 시스템을 구매해 서비스를 옮기는 방법을 말합니다. 즉, 하드웨어 적인 부분을 교체 또는 새로 구매하는 것을 말합니다. 이는 부품을 쉽게 추가할 수 있으면 시스템 설계 변경 없이 서비스 사용량을 쉽게 늘릴 수 있다는 장점이 있습니다. 하지만, 스케일 업을.. 2021. 11. 6.
면접 질문 정리 (1) 본 글은 면접 예상 질문을 정리하는 글로 계속해서 추가할 예정입니다. 🎃 질문에 대해 두루뭉실하지 않게 명확하고 정확한 답변을 할 수 있도록 하는 것이 목표입니다. 1. Reference Type(참조 자료형)과 Primitive Type(기본 자료형)의 차이점은 무엇인가요? 참조 자료형은 new라는 예약어를 사용해서 초기화를 해야하지만 기본 자료형은 바로 값을 입력해 초기화를 할 수 있습니다. 참조 자료형은 생성시 Heap 메모리에 생성이 되고, 기본 자료형은 Stack 메모리에 생성이 됩니다. 2. 오버로딩과 오버라이딩의 차이점은 무엇인가요? 오버로딩은 한 클래스 내에 같은 이름의 메소드를 여러 개 정의하는 것입니다. 이름은 같지만 매개변수 또는 타입이 달라야 합니다. 오버라이딩은 상속을 받은 클래스.. 2021. 10. 13.
[8주차] 멘토링 키워드 📝 java8의 기본 GC가 무엇인지, 그리고 그 이외에 다른 GC에 대해서 GC (Garbage Collecton) 란? 더이상 사용하지 않는 객체 등을 메모리에서 해제(삭제)하는 JVM의 작업 Java 7, 8은 기본 GC로 Parallel GC를 사용하고, Java 9, 10 은 G1 GC를 사용한다고 한다. Serial GC 순차적인 GC 라는 의미로, Mark-Sweep-Compaction 알고리즘이 한 번에 하나씩만 동작한다. 가장 오래된 GC이며, 요즘에는 사용되지 않고, 사용해서도 안된다. Stop-The-World 시간이 너무 길기 때문이다. Parallel GC Serial GC가 하나의 스레드로 Mark-Sweep-Compaction을 수행한다면, Parallel GC는 여러 개의 스.. 2021. 10. 6.
[7주차] 멘토링 키워드 👀 오늘부터 시작한 나와의 약속.. 키워드 정리는 멘토링 당일에 하기,, 멘토님께서 알아보면 좋을 것 같다고 하신 내용 말고도 공부할 게 많다. 그러니 미루지 말고 키워드 정리는 당일에 하자! 사실 요즘 일하고 공부하고,, 그동안의 피로가 쌓여서 2주동안 아무것도 안하고 누워있던 적이 꽤 많았다.. 조금 쳐지는 것 같다고 말한걸 캐치한 멘토님이 TIL(Today I Learned) 을 말씀해주셨고 주 3회씩 작성하기로 했다. 다시 동기부여도 되고 열심히 하려는 의지가 뿜뿜한다! 📝 Java 에서 StrongReference 와 WeakReference의 차이 자바의 참조 유형에는 약한 참조(Weak Reference), 강한 참조(Strong Reference), 소프트 참조(Soft Reference).. 2021. 9. 29.
[6주차] 멘토링 키워드 주절주절,, 자바의 신 책을 다 읽고(다 읽었다고 했지만 꼼꼼히 한 번 더 봐야할 것 같다) 드디어 JSP책으로 넘어갔다. 괜히 새 책이라 그런가 새학기 들어가서 새로운 과목을 처음 배울때처럼 설레고 흥미로웠다. JSP책 관련 질문은 JSP의 기본동작 원리와 쿠키 세션에 대한 내용이 주를 이루었다. 멘토링을 진행하고 난 뒤 다음날 중복 로그인 문제로 세션관련 코드를 보게되었는데 괜히 책에서 읽었던 내용 보게되서 괜히 반가웠다 ㅎㅎ 아무튼 오늘도 멘토님께서 언급해주신 키워드를 하나씩 알아보자! 📝Restful API REST 란 웹(HTTP)의 장점을 최대한 활용할 수 있는 아키텍쳐이다. REST API(REpresentational State Transfer)는 REST 아키텍쳐 스타일을 따르는 API로.. 2021. 9. 19.
[5주차] 멘토링 키워드 정리 벌써 다음주면 멘토링 6주차에 접어든다. 6주동안 두꺼운 책을 읽으면서 그동안 몰랐던 자바의 기능들을 발견했다.. 그동안 나름 공부한다고 공부를 했지만 온전히 내 것으로 만들지는 못하는 것 같다. 왜냐면 막상 멘토님께서 질문을 하시면 난 대답을 자신있게 하지 못하기 때문이다.. 머릿속으로는 그려지고 어떤것인지도 알고는 있는 것 같은데 조리있게 대답이 안된다...나중에 면접에서도 그럴 것 같아서 무섭다..ㅠ 책을 읽을 때 이해하고 적용시키는 것도 좋지만 스스로에게 질문을 던지면서 대답하는 습관을 들여봐야겠다. 멘토님께서 멘토링 시간에 질문에 대해 대답하지 못한것, 또는 더 깊게 알아보면 좋을 것 같은것들을 멘토링이 끝난 후에 정리해서 보내주신다. 오늘은 이 내용들에 대해서 알아보고 정리하는 시간을 가져보겠.. 2021. 9. 12.
[Eclipse] Git 연동시 Can't connect to any URI 에러 에러발생 깃허브에 새로 Repository를 생성하여 연동하고 push를 하니 Can't connect to any URI~ 라며 에러가 떴다. 기존에 했던 방식대로 그대로 했는데도 아래와 같은 에러가 발생했다. 구글링을 해본 결과 이유는 아래와 같다. URI 주소가 잘못된 경우 Git과 연동된 user/password가 다른 경우 Git에서 Token을 받지 않은 경우 해결방법 첫번째는 URI를 다시 한번 확인함으로써 문제 해결이 가능하다. 두번째는 window-preferences-General-Security-Secure Storage에서 Git에 저장된 user/password를 삭제 후 다시입력함으로써 해결이 가능하다. 나는 세번째의 이유때문에 되지 않았다..ㅎㅎ Token을 발급받지 않았기 때.. 2021. 8. 16.