분류 전체보기

    [정리] 변수란 무엇일까?

    지금까지 코딩을 해오며 아무 생각 없이 변수를 사용했다. 그러다 변수란 무엇일까라는 질문을 들었을때 매일 사용했던거였지만 바로 대답이 나오지 않았다. 변수란 무엇일까? 처음 질문을 듣고 메모리 주소를 가리키는 이름?? 이라고 생각했지만 확신은 없었다. 그렇다면 왜 다른이름도 많은데 하필 변수라는 이름이 탄생했을까라는 추가적인 생각이 들게 했다. 질문을 던진 분은 그릇을 빗대어 그릇안에 담는 물건은 바뀔수 있다를 비유하며 설명해주셨고 평소에 값을 변수에 담는다라는 표현을 하곤 했는데 이말을 들으니 이해가 됐다. 나무위키에 따르면 변수란 특정 값을 저장하는 메모리 공간이라고한다. 해당 메모리 공간에는 허용되는 범위 내에 어떤값이든 저장할수 있으므로 변수라고 한다고 한다. 위 고민을 거치니 '허용되는 범위 내..

    [Java] List<T> list = new ArrayList<>();

    자바에서 변수를 선언할때 보통 아래와 같이 선언한다. Type 변수 = new Type(); 하지만 ArrayList의 경우에는 보통 List 타입으로 선언한다. List arrayList = new ArrayList(); 그 이유가 궁금해서 찾아보기 전 나는 List 클래스의 method가 ArrayList보다 더 많이 제공하고 편한가? 라는 생각을 했다. 1. List 먼저 List는 클래스가 아닌 인터페이스였다. List 인터페이스를 들어가보면 아래와 같이 인터페이스로 구현되어 있다. public interface List extends ~ 추가로 공식문서에서도 인터페이스라는 것을 확인할 수 있다. 인터페이스란 메소드를 선언만 해놓고 다른 클래스에서 인터페이스를 implement 하여 인터페이스에 ..

    [정리] ubuntu java 개발자 세팅 (그래픽카드 드라이버 설치, vscode, ibus, LibreOffice, virtualBox, openJDK)

    1. 한글 세팅 (ibus) (1) ibus-hangul 설치 sudo apt install ibus-hangul (2) ibus-setup에서 한글 추가 ibus-setup Hangul 검색후 Add 오른쪽 상단 Settings 접속 위와 같이 설정 오른쪽 위에서 한글모드 설정 2. vscode 설치 https://code.visualstudio.com/ 홈페이지 접속후 deb 파일 다운로드 터미널 켜기 (ctrl + alt + t) 경로 이동후 dpkg cd ~/Downloads/ sudo dpkg -i 다운받은deb파일.deb + java 세팅을 위한 extension 설치 spring boot 를 위한 extension 설치 + 깃 설치 sudo apt install -y git 3. java 설..

    [Spring Boot] mysql 연결 삽질기

    spring boot, gradle로 프로젝트 세팅을 하고 mysql을 연동하려고 했다. 그런데 mysql 과 연결하는 의존성을 추가하는 과정에서 계속 실패했다. runtimeOnly 'mysql:mysql-connector-java' 나는 위와 같이 의존성을 추가했고 구글링을 해봐도 다들 위와 같이 한다. 그러다가 jdbc의 버전을 명시해줬더니 정상적으로 연결됐다.. runtimeOnly 'mysql:mysql-connector-java:8.0.32' 근데 다른 사람들은 버전을 명시 안해줘도 잘 되는게 이상했다. 그래서 버전을 명시 안해줘도 되는 걸 찾아보다가 아래와 같은걸 발견했다. runtimeOnly 'com.mysql:mysql-connector-j' 결국 마지막 코드로 의존성을 해결했다..

    [정리] 브라우저의 작동 방식

    브라우저의 구조는 다음과 같다. 1. 사용자 인터페이스 여기에는 주소 표시줄, 뒤로/앞으로 버튼, 북마크 메뉴 등이 포함된다. 요청한 페이지가 표시되는 창을 제외한 브라우저 디스플레이의 모든 부분이다. 2. 브라우저 엔진 UI와 렌더링 엔진간의 작업을 마셜링한다. 마셜링이란 한 객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다. 3. 렌더링 엔진 요청된 콘텐츠 표시를 담당한다. 예를 들어 요청한 콘텐츠가 HTML인 경우 렌더링 엔진은 HTML과 CSS를 구문 분석하고 콘텐츠를 화면에 표시한다. 4. 네트워킹 HTTP 요청과 같은 네트워크 호출을 위해 사용한다. 플랫폼의 독립적인 인터페이스이며 각 플랫폼의 하부에서 실행된다. 5. UI 백엔드 콤보 상자 및 창과 ..

    [정리] 개발 방법론 (Water Fall vs Agile)

    프로젝트마다 프로젝트의 성격, 규모, 일정, 비용등에 따라 개발 방법론을 선택해야한다. 그 중에서도 대표적인 개발방법론인 폭포수(Water Fall) 방법론과 애자일(scrum) 방법론을 설명하려고 한다. 1. 폭포수 방법론 (water fall) 폭포수 방법론은 기획, 분석, 설계, 구현, 테스트, 유지보수 단계로 이루어진 선형적인 개발 방법론이다. 각 단계는 이전 단계의 결과물을 바탕으로 진행되며, 다음 단계로 넘어가기 전에 이전 단계의 결과물이 검증되어야 한다. 이 방법론은 전체 프로젝트를 미리 계획하고 모든 기능을 상세하게 정의해 놓아야 하기 때문에 초기 비용이 많이 들어가고 변경사항이 생긴다면 수정하기 어렵다. 하지만 일관된 품질을 유지할 수 있고 프로젝트 일정을 예측하기 쉬워서 대규모 프로젝트..