일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- Scheduler
- Pinpoint
- F-Lab
- NooBLoL
- OrientalUnity
- ngrinder
- navercloud
- object storage
- DBDocs
- Java
- Naver Cloud
- 네이버클라우드
- spring boot
- 네이버 클라우드
- 회고
- Database
- AssertJ
- ncloud
- NaverCloudPlatform
- Naver Cloud Platform
- docker
- papago
- Thymeleaf
- junit
- 에프랩
- Enum
- NCP
- React
- spring
- mybatis
- Today
- Total
목록전체 글 (83)
DevJong12

회사에 다니면서 가장 해보고 싶었으나 못했던 부분에 대해서 작업을 해보고자 한다. CI / Continuos Integration : 지속적 통합 CD / Continuos Delivery : 지속적 배포 두가지 의미이며, 초창기에 CD의 구상은 젠킨스를 진행하려했으며 CI에 대한 개념이 부족했어서 설계를 진행하지 않았었다. 먼저 CI에 대한 작업을 진행하면서 굳이 CD작업에서 젠킨스밖에 몰랐던 부분에서, 굳이 젠킨스의 사용없이 구상이 가능하다고 생각이 들어 설계를 변경하고자 생각하게 되었다. 사용된 툴? 설계를 진행함에 선택한 도구는 Git Action을 사용해보기로 하였다. Youtube 알고리즘의 간택으로 영상들을 보다 보니 간편한 설계가 가능해 보이면서도 해당 설계를 작성하는 과정이 너무 재밌어 ..

DB의 경우에는 일단 Maria를 설치진행할 예정이며 도커로 하고자 한다. 1. 설치 명령어 image 가 없는 경우 mariadb를 가져온 이후 실행을 바로 할 수 있도록 설정하였다. 재실행시에 항상 켜지도록, 3306포트 포워딩, 백그라운드에서 실행하도록 하였다. docker run --name mariadb -d -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=system mariadb 2. 컨테이너 접속 필자의 경우 mariadb그대로 컨테이너를 제작하였기에 mariadb컨테이너명으로 접속을 한다. docker exec -it mariadb /bin/bash 3. DB접속 mysql -u root -p DB접속 및 초기 패스워드설정한대로 접속. 아래와..

필자의 경우 개발서버에서 Maria와 시간적인 여유가 된다면 Redis까지를 전부 돌리는걸 목표로 하다 보니 간편하게 개발서버 구상을 하기위해서는 도커의 설치가 필수적이었다. 또한 프로젝트역시 도커를 통해서 실행할 예정이기에... 먼저 설치를 함에 있어서 아래의 도커의 tutorial을 참고하며 진행하였습니다. 설치과정은 해당 튜토리얼에서 제가 진행한 단계들에 대해서만 기록하였습니다. Orientation and setup docs.docker.com 1. 오래된 버전의 도커 Uninstall sudo apt-get remove docker docker-engine docker.io containerd runc 2. 레파지토리 설정 apt패키지의 업데이트를 진행한 이후 repository사용에 필요한 패..

개발 서버의 경우 Naver에서 제공하는 클라우드 서버를 통하여 서버를 구축을 진행하였습니다. F-Lab을 진행하면서 Naver의 Cloud서버금액에 대한 지원이 가능하여 Naver를 채택하게 되었습니다. 해당 포스트는 서버를 구성하는 과정에 대해서 기록을 위해 포스팅 하였습니다. 클라우드 서버생성은 아래 사이트에서 진행하였습니다. NAVER CLOUD PLATFORM cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification www.ncloud.com 먼저 구상을 했던 것은 DB와 Spring-Boot가 올라가게 될 서버는 서로 다른 서버를 사용하도록 ..

해당 프로젝트는 Spring-Boot를 이용한 프로젝트이며, 구현은 서버만 진행할 예정이며, 혼자서 프로젝트를 진행 합니다. 해당 문서는 현재 진행형이라 지속적으로 수정을 진행할 예정입니다. 프로젝트 Github 저장소 GitHub - f-lab-edu/NoobLoL Contribute to f-lab-edu/NoobLoL development by creating an account on GitHub. github.com 프로젝트 개요 'OP.GG'를 모티브로 만든 게임(리그오브레전드)의 전적검색에 대한 조회를 할 수 있는 Rest API입니다. 게임 캐릭터 명을 기반으로 게임에서 진행한 전적리스트와 해당 계정의 정보들, 의견을 나눌 수 있는 게시판 기능을 제공합니다. 사용 기술스택 Spring-Boo..
이번 멘토링의 주제는 JSP와 관련한 주제로 챕터 1 ~ 4 JSP의 전반적인 이해 챕터 9의 쿠키 총 5개의 챕터를 학습하고 멘토링을 진행한 주제이다. 22. 06. 14 ~ 22. 06. 27 총 2주간 최범균의 JSP 2.3 웹프로그래밍 기초부터 중급까지를 읽고 멘토링을 진행예정이다. [Request, Response를 WAS에서 어떠한 역할이 진행되는지?] Request 웹 브라우저가 웹서버(was, tomcat)에 HTML요청할 때 사용할 데이터 구성 규칙 해당 데이터들로 서블릿에서는 로직을 실행하는 등의 기능실행이 가능 Response 웹 서버가 웹 브라우저에 HTML등을 전송할 때 사용할 데이터 구성 규칙 [JSP페이지에서의 주석과 관련하여..] 주석의 경우에는 개발을 진행하면서 내용을 남기..
해당 오류사항은 제 맥북 셋팅 실수에서 발생한 오류인점 참고 바랍니다. 어디로 둘까 생각하다가 JDK설정과 관련한 문제라 JAVA로 카테고리를 정하였다.. [개요] Tomcat을 설치한 이후 정상적으로 작동이 되는지 확인하기 위해 Iterm을 통해서 Tomcat디렉토리로 이동한 이후 catalina.sh run 을 입력하여 실행해봄. 오류가 지속적으로 발생했었으며, 경로는 약간 가렸으나, 아래와 같은 방식으로 오류가 발생하였다. /util/was/tomcat/apache-tomcat-8.5.81/bin/catalina.sh: line 504: /zulu-8.jdk/Contents/Home/bin/java/bin/java: Not a directory [발생원인] 일단 추측이긴 하나, catalina.sh..
다음 수업까지 책을 다 읽어보겠다고 내가 약속을 하여.. 먼저 읽다보니 Article의 작성이 많이 늦어졌다. 일단 고민중이었던게 알고리즘 스터디와 관련해서였다. 과거에도 공부를 하면서 언어의 유리함은 Python이나 C++이 좀 더 유리하지 않나 라는 생각을 주로 했어서, 알고리즘의 경우 코테의 통과만을 위해서라도 변경하는게 좋지 않을지 물어봤었다. 들었던 말이 다른언어로 해도 상관은 없으나, 다시 자바에서 유사한 알고리즘을 사용하거나 할 경우 작성만 할 수 있다면 상관없을 거라는 의견을 받았다. 의견을 받고 든 생각은 일단 자바부터 확실하게 익히자는 생각을 하게 되었고, Java를 베이스로 스터디를 시작해보고자 한다. [ConcurrentModificationException] 처음 들었을 때 어떠한..
[System.exit, System.GC를 사용하면 안되는 이유] exit System.exit Runtime.exit shutdown.exit shutdown.halt0 실행 exit의 경우 위의 stack으로 실행이 된다. halt의 경우에는 JVM프로세스를 강제로 종료한는 메소드로, exit를 실행시 JVM을 종료하게 되는 것.. 운영중에 내가 만든기능으로 서비스가 종료하게 되는 결과가 발생하는 것. GC GC는 GarbageCollector를 인위적으로 호출한다. 해당 메소드는 Full GC를 실행하는 것 왜 New와 Old영역으로 구분을 하고 Major GC, Full GC로 분리를 했을지 생각을 해보면 좋을 것 같다. Full GC를 인위적으로 실행하는 것인데 그러면 수집이 이뤄지는게 비효율..

개발완료된 고객사 서버를 이관받아서 보던중, "MaxPermSize"가 반영이 된 고객사가 존재 하였다. 나도 상급자한테 오류내용에 대해 물어보다가 설정과 관련된 오류중에 해당오류를 발견해주셔서 설정이 되어 있는 점을 알게 되었다. 해당 고객사 사양은 JDK1.8, Tomcat9 필요가 없는 옵션인데 설정이 된채로 개발당시 적용을 하고 이관을 했던 것 같다. 필요가 없는 이유에 대해서 서술을 하고자한다 먼저 필요없는 이유를 알려면 Java 버전에 따른 구성을 알아야 한다. 좋은 이미지를 올려준 사이트가 있어서 이미지를 가져온다. 참고 주소 : https://blog.voidmainvoid.net/184 Java 7 HotSpot JVM 구조 Java 8 HotSpot JVM 구조 메모리에 대한 구조자체가..
현재 해결중인 사항이지만 오류사항이 되게 신선했어서 기록으로 남겨놓는다.. 회사의 솔루션을 납품하면서 발생한 문제인데 꽤 오래전에 납품했는데 여태 오류가 없다가 최근에 발생이 되서 확인을 해보았다. 오류사항이 DB의 테이블에 설정한 컬럼크기보다 더 많은 양의 글자가 입력되어 발생이 된 오류였다. 일단 급한대로 부랴부랴 컬럼의 크기를 늘리는 것으로 해결을 했다.(당장 사용을 해야하는데 안되는 걸..) [오류내용] 문제가 발생된 고객사는 해외고객사이며, 서버의 역시 해외에 있다. 또한 PC는 윈도우 서버를 사용하는 업체였다. 문제는 서버에서 발생이 된 것으로 추측이 된다. 현재 재직중인 회사의 솔루션은 대부분 한글, UTF-8를 사용을 하는 곳이 대부분 이었기에 크게 문제가 발생하지 않았었다. 그러면서 사용..
F-Lab의 3주차 멘토링을 받았던 질문들에 대해서 정리를 해놓고자 한다. 책을 많이 읽고 가야한다고 생각은 하는데 막상 쉽지가 않은 것 같다.. [동일성과 동등성] 동일하면 동등하지만 동등하다고 동일한 것은 아니다.. 동일성 동일의 의미로 두 개의 객체가 완전히 같은경우 (주소값이 같은 경우) 동등성 동등하다는 의미, 두개의 객체가 같은 정보를 가지고 있는경우(주소값은 다름) ==연산자를 통해 동일한지의 여부를 알수있으며, equals를 통해 동등한지 여부를 확인 가능.. 허나 equals를 통해 모든 것을 다 동등한지 여부를 확인할 수는없다 Object메소드에서는 동일성확인을 하는 것이기떄문. 오버라이드를 해서 재정의를 해야함. [equals와 해쉬코드의 차이점, 왜 숫자일까] equals는 객체의 ..
과거에 면접을 보면서 이런 기본적인 것조차도 몰라서 면접에서 탈탈털렸던 기억이 있어서 글을 썻던 기억이 있다. 근데 다시보니 무슨말인지도 모르곘고, 설명도 많이 틀린것 같아 옜날보다 나아진 지금 다시 글을 적어보고자 한다. String, StringBuilder, StringBuffer 세개는 모두 java.lang 패키지에 구성이 되어 있으며 선언은 아래와 같다. String public final class String implements java.io.Serializable, Comparable, CharSequence StringBuffer public final class StringBuffer extends AbstractStringBuilder implements java.io.Seriali..
Tech 일단 Stack과 힙부터...더 딥하게... https://yaboong.github.io/java/2018/05/26/java-memory-management/ [loop를 사용하게 될 경우 Garbage Collector의 실행관점에서 조심해야 할 이유] 일단 이문제는 가비지 컬렉터가 해당 값을 현재 참조를 하고 있는지 안하고 있는지 판단을 하는 방법에 대해서 부터 찾아봐야 할 것 같다... 음.. 이문제를 처음에는 Stack메모리, Heap메모리를 관련한 부분으로 생각을 해보려고 했다. 근데 그냥 단순하게 무한루프로 반복문을 탈출하지 못하는 상황을 생각해보면 되었던게 아닐까 싶다. 루프를 반복하며, 탈출을 못하게 될 경우 지속적으로 해당 반복문이 실행이 될것이고, 그 의미는 프로세스가 끝나..
IP는 Internet Protocol 의 약자로 현재시대의 네트워크를 구성하는데 필수적인 요소이다 우리 사회의 네트워크는 기본적으로 IP기반의 구성이며 인트라넷을 사용하더라도 기본적으로 IP주소가 필요하다 IP에는 2가지 종류가있다 IPv4와 IPv6 IPv6의 경우 IPv4의 아이피할당수의 부족으로 인해 생겨났으며 128비트로 이뤄져있고 16비트로 쪼개져 8단위가 있다. 현재는 휴대폰과 컴퓨터에만 사용되지만 점차 사물인터넷에서도 사용이 가능하게 개발중인 상황으로 알고있다. 표현법은 아래와같다 2001:0:9d38:6abd:28cd:3aed:489a:f80c 1 2 3 4 5 6 7 8 단위는 :를 기준으로 구분하며 4자리가 다 0인경우 0한개만으로 표현된다. IPv4는 전세계적으로 사용한 첫번째 인터..
아래의 사진은 클래스별로 구분이된 표이다 (위키백과) CLASS네트워크ID 구성범위예 A 클래스 xxx.xxx.xxx.xxx 0.0.0.0 ~ 126.255.255.255 61.211.123.22 B 클래스 xxx.xxx.xxx.xxx 128.0.0.0 ~ 191.255.255.255 181.123.211.33 C 클래스 xxx.xxx.xxx.xxx 192.0.0.0 ~ 223.255.255.255 221.23.222.222 D 클래스 224.0.0.0 ~ 239.255.255.255 E 클래스 240.0.0.0 ~ 255.255.255.255 클래스는 2진수와 관계가 있는데 PC는 0과 1로 이루어진 장비이다. 예를들어 0.0.0.0을 2진수로 변환하면 00000000.00000000.00000000...
단 한시간동안이었지만.. 질문을 받은 부분들이 전부다 생각조차 못해봤던 영역의 문제라 듣기만 해도 멘탈이 바사삭 부셔지긴 했는데 되게 재밌는 시간이었고, 왜 이정도 까지 생각을 못해봤을까 라는 생각을 했다.. 정리를 해주신 것들은 무조건 알아보고자 기록으로 남겨놓는다. 1. Primitive Type과 Reference Type이 Garbage Collector가 동작하게 될 경우 어떻게 작동이 진행 될까요? - 예시로 들어준 것은 int a = 1; Integer a = 1;일 경우 GC에서는 어떻게 동작되는지 내가 봐야할 부분은 선언당시에 JVM의 어느 메모리 영역에 생성이 되는지를 한번 확인해봐야 할 것 같다. - Primitive Type(기본형) 의 경우에는 JVM에서 Stack 메모리에 값이 ..

[JVM?] - JVM이란 Java Virtual Machine으로 자바 가상머신의 약자를 줄여 부르는 용어 - 자바 어플리케이션을 클래스 로더를 통해 읽어 자바와 함께 실행 - JAVA와 OS사이의 중개자 역할로 OS에 구애받지 않고 사용이 가능하게 함. - 메모리관리의 경우 Garbage Collection을 수행함 - 보통의 다른 하드웨어의 경우 레지스터 기반이지만 JVM의 경우에는 스택을 기반으로 작동됨 [왜 알아야 하는가?] 이건 나의 생각일뿐이다.. - 구동의 근본적인 원리를 알고 개발을 진행하게 되면 자원의 효율을 극대화가 가능하기 때문이지 않을까 싶다.. - 어느 영역을 사용하여 관리의 효율성 이나 좀더 안정적인 프로그램 실행 말이다.. [Java의 실행 단계] 프로그램 실행 OS에서 프로..
AWS 프리티어끝난김에.. DB를 본체로 깔아서 사용하려니까.. 본체와 연결된 공유기가 이상한지 인터넷선이 이상한지모르겠는데 계속 DNS를 못찾으면서 인터넷의 연결이 자주끊기고 공유기의 포트포워딩이 제대로 안된다... 그래서 DB를 맥북에 로컬로 돌려야한다...... 맥북은 설치법을 몰라서 기록하면서 해봄.. iterm으로 homebrew 사용해서 설치 진행함. 1. 설치 1. 설치 brew install mariadb 2. 서비스 시작 brew services start mariadb 3. 서비스 내리기 brew services stop mariadb 그냥 똑같은 명령어네...... 4. 현재 brew로 서비스중인 리스트확인 brew services list 5. ps로 maria 서비스 확인유무 ps..

쿠키와 세션에 대해 알아보기전에 HTTP특징을 알아야한다. HTTP통신의 특징은 Connectionless(비 연결 지향) 과 Stateless(상태정보 유지안함) 임. Connectionless (비 연결 지향)?? 클라이언트에서 서버에 요청을 보내면 서버는 클라이언트에 응답을 하고 접속을 끊는 특성 (HTTP1.1에서 Connection 헤더에 keep-alive라고 설정하면 컨넥션을 유지할 수 있다고 한다.) Stateless (상태정보 유지안함) HTTP 통신은 요청을 응답하고 접속을 끊기 때문에 클라이언트의 상태정보를 알수가 없슴. 이를 Stateless라고 한다. HTTP프로토콜에서 상태를 유지하고 서비스를 제공하기 위해서 등장하는것이 이제 적을 쿠키와 세션이 되는 것이다. 쿠키 (Cookie..