STUDY
[JAVA] JVM 구조 총정리
🔓 모든 스레드가 공유하는 데이터 영역 1. Class Area (=Method Area, Static Area, Code Area) 💾 저장되는 정보 클래스 정보(멤버 변수 이름), 변수 정보(데이터 타입, 접근 제어자 정보) 메서드 정보(메서드 이름, 리턴타입, 파라미터, 접근제어자 정보) static 변수, final class 변수 constant pool (상수풀: 문자상수, 타입, 필드, 객체 참조가 저장됨) ⏰ 생성시점 JVM이 동작해서 클래스가 생성될 때 생성된다. 2. Heap Area (객체들의 놀이터) new 를 통해 생성된 객체와 배열이 저장되는 영역 Method Area에 로드된 클래스들만 생성이 가능하다. GC의 주요 대상이 된다. - 효율적인 GC를 위해 메모리 영역이 분리되어..
[서버] CI/CD 그리고 Jenkins (젠킨스)
앱 자체를 만들고 최적화 시키는 것에만 관심을 가지고 있었습니다. 그런데 제가 서버를 멘토링을 하고 있는 멘티가 CI/CD와 젠킨스에 대해 관심을 갖더라구요. 저는 아는 바가 없어서 해줄 얘기를 찾기 위해 구글링을 하다보니 젠킨스를 사용해보고 싶다는 생각이 격렬히 들었습니다. 그동안 로컬에서 API를 빌드하고 테스트하고 테스트가 완료된 API를 서버에 올려주는 과정이 매우 귀찮다고는 생각하고 있었는데 역시 이런 귀찮음은 역사가 오래된 귀찮음이었나 봅니다. 사설은 줄이고 CI/CD와 젠킨스에 대해 알아봅시다! CI/CD CI(Continuous Integration) : 여러 개발자들의 코드를 계속해서 통합하는 것. CD(Coutinuous Delivery) : 개발자들이 코드를 계속 작성하면, 사용자 및..
[TI/SPRING] IOC, DI 정의/ 장점
[Tech Interview] IoC, DI는 무엇이고 어떠한 장점이 있을까요? IOC 란 무엇인가? IOC 는 SPRING 용어가 아닙니다.SPRING 이전에도 존재했던 용어죠. IOC는 Inversion of Control 의 약자입니다. 단어를 좀 뜯어볼까요? Inversion 역전 Control 제어 즉, IOC는 제어의 역전입니다. 그럼 뭘 제어하고 뭘 역전했다는 것일까요? 이전 포스팅에서 SPRING 을 EJB 와 비교해서 설명할 때 제어에 대해서는 많이 이야기를 했습니다. 원래는 제어는 개발자가 구현해야 했습니다. 하지만 EJB와 SPRING 모두 편리한 개발, 즉 개발자가 복잡하고 실수하기 쉬운 로우레벨의 기술에 많이 신경쓰지 않고도, 애플리케이션의 핵심인 사용자의 요구사항, 즉 비지니스 ..
[TI/Spring] 스프링이란? EJB와 비교
[Tech Interview] Spring이란 무엇인가요? Spring이 이야기하는 장점에는 무엇들이 있을까요? (EJB와 비교해서 설명하면 좋을듯) EJB (Enterprise Java Bean) EJB는 스프링을 설명하기에 좋은 도구가 될 듯합니다. EJB는 Enterprise Java Bean 의 약자입니다. 우선 Bean 은 객체라고 이해하면 좋습니다. Java Bean 이란 자바 객체를 재사용 가능하도록 정의한 것입니다. 즉, Enterprise Java Bean은 엔터프라이즈(기업)급 어플리케이션을 개발할 때, 자바 객체를 재사용 가능하도록 정의하여 편리하게 개발 할 수 있도록 발표한 스펙이라고 이해하면 됩니다. 그럼 편리한 개발이란 무엇일까요? 편리한 개발이란 개발자가 복잡하고 실수하기 쉬운..
백엔드 개발자 기술면접 질문 정리
오늘부터 다음 git에 정리된 기술면접 질문에 대한 답변을 하루에 한 개씩 블로그와 깃에 정리하려고 합니다. 블로그에 공공연히 선언해야 시작할 때의 열정이 사라지지 않을 것 같기에! https://github.com/Lob-dev/Junior-Back-end-Developer-Concepts/blob/main/Job%20interview.md GitHub - Lob-dev/Junior-Back-end-Developer-Concepts: Java, Spring 위주의 Back-end 신입 개발자를 위한 저장소입니 Java, Spring 위주의 Back-end 신입 개발자를 위한 저장소입니다. 지속적인 개선, 업데이트를 진행하고 있습니다. - GitHub - Lob-dev/Junior-Back-end-Dev..
깃(Git) README.md + 이모티콘 쓰기
[보여지는 텍스트](#이동할-위치) #이동할 위치 1. 표 만들기 + 글자에 링크 씌우기 ## :octocat: api 명세 | Method | URI | Description | 개발 완료 | 토큰 필요| | ------ | -- | -- |--------------- |-------------- | | POST | /users | [회원가입](https://github.com/isoomni/geoplan/tree/master/src/src/main/java/kr/co/geoplan/metro/src/user) | ☑️ | | | POST | /users/logIn | [로그인](https://github.com/isoomni/geoplan/tree/master/src/src/main/java/kr/c..
[ANDROID][JAVA] 버튼을 누르면 로그인 fragment 에서 다른 activity로 연결하는 intent 사용 방법
버튼을 누르면 로그인 fragment 에서 다른 activity로 연결하는 intent 를 사용하는 구간의 코드입니다. findViewById(R.id.btn_login).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); finish(); } }); 위의 클래스는 Fragment를 상속받았습니다. btn_login 이라는 로그인 버튼을 누르면 getApplicationContext()를 해서 MainActivity가 담긴 i..
[SERVER][SPRING] 검색하기 API
현재 제가 하고 있는 프로젝트는 "식당 메뉴 리뷰 어플리케이션"입니다. 식당 리뷰 앱에 메뉴 리뷰까지 있는 경우는 많이 없기 때문에 식당에 가서도 뭘 먹을까 고민할 때가 있습니다. 식당 리뷰를 뒤져서 사람들이 뭘 많이 먹는지 찾아보곤 하죠ㅎㅎ 오늘 구현해 볼 부분은 검색창에 지역을 검색했을 때 해당 지역에 위치한 식당들만 불러오는 API를 만드는 것입니다. 앱에서 특정 키워드를 검색할 경우 해당 키워드를 파라미터로 받아서 쿼리로 필터를 적용하여 키워드에 해당하는 데이터만 받아오도록 해보겠습니다. 필요한 파일들입니다. 전체 파일구조는 다음과 같습니다. config 폴더와 src 폴더의 restaurant 폴더만 동일하게 구성하면 됩니다. 먼저 src > restaurant 폴더를 구현해 보겠습니다. --R..