본문 바로가기

전체 글141

Mac java 여러 버전 설치 맥에 여러 프로젝트를 실행하다 보면 해당 프로젝트에 맞는 java를 설치해야 하는 경우가 있다. 그런 경우 아래와 같은 순서로 기존 설치된 자바 버전 이외에도 다른 버전을 설치 할 수 있다. 오늘은 brew를 이용해서 설치를 해보자. brew가 설치되어 있지 않다면 아래 명령어를 활용하여 설치하자. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" macOS용 패키지관리자 Homebrew가 궁금하다면 아래 링크에 들어가 봐도 좋다. https://brew.sh/index_ko 저장소 연결하는 명령어 brew tap adoptopenjdk/openjdk ~ master* ❯ brew t.. 2021. 5. 26.
vi 문자열 찾기 및 문자열 바꾸기 총정리 vi 문자열 찾기, 문자열 바꾸기 명령어 설명 /검색어 검색어를 커서 아래 방향으로 검색 ?검색어 검색어를 커서 위 방향으로 검색 n 다음 검색어로 뒤로 이동 N 이전 검색어로 앞으로 이동 vi에서 문자열 검색을 위해서는 입력모드가 아닌 일반모드에서 "/" 입력 후 찾을 문자열을 입력하면 문자를 찾을 수 있다. (다른 모드에서 일반모드로 오려면 ESC 버튼을 누르면 됨) 단어를 찾고나서 다음단어로 가기 위해서는 n을 누르고, 이전 단어로 이동을 위해서는 N을 누르면 된다. vi 문자 바꾸기 명령어 설명 :s/대상문자열/변경문자열 커서가 위치한 행에서 처음으로 나오는 대상문자열을 변경문자열로 바꿈 :%s/대상문자열/변경문자열 파일 전체에서 모든 대상 문자열을 변경문자열로 바꿈 실제 vi 파일에서 아래와 같.. 2021. 5. 25.
MySQL 설정파일 구성, my.cnf 기초! MySQL이 뭔지는 알지만 설정파일에 대해서는 잘 모르는 경우가 많다. 직접 설치를 할때 아주 잠시 지나갔던 파일로 오늘은 해당 파일에 대해서 자세히 알아보도록 하자. MySQL 서버는 단 하나의 설정 파일만 사용한다. 유닉스 계열에서 my.cnf 라는 이름을 쓰며, 이 파일의 이름은 변경할 수 없다. MySQL 서버는 시작될 때만 이 설정 파일을 참조하는데, 경로가 딱 하나로 고정되어 잇는 것은 아니며, 지정된 여러 디렉토리를 탐색하면서 처음 발견된 my.cnf 파일을 사용한다. 사용중인 MySQL 서버가 어느 디렉토리에 있는 my.cnf 파일을 읽는지 궁금하다면 아래와 같이 실행 하면 된다. 아래 명령어를 실행하면 상당히 많은 양의 내용이 출력 된다. 중간쯤 있는 "Default options ..... 2021. 5. 21.
리눅스 vi 기초 사용법 & 명령어 모음 가끔 개발자들이 아래와 같은 화면을 띄워 놓은 것을 볼 수 있을 것이다. 일반적으로 이런 검은 화면에서 문서를 보려면 리눅스에서 파일을 보는 상황일 것이다. 익숙하지 않은 vi 에서 알고 있으면 편하게 사용할 수 있는 명령어에 대해 간단하게 정리를 해보겠다. vi란? 쉽게 말해서 파일을 편집하기 위한 에디터라고 생각하면 된다. 윈도우에서는 파일을 작성하거나 수정하기 위해 메모장을 사용하지만, 리눅스에서는 기본 편집기로 vi를 사용한다. 처음에는 낯설기 때문에 어색하지만 익숙하지고 명령어를 익히면 편하게 사용이 가능하다. vi 파일 실행 아래와 같이 터니널에서 명령어를 치면 지정한 파일이 있는 경우 파일이 열리고, 없는 파일이면 빈 파일이 열린다. vi test.txt vi 파일 저장 및 종료 vi 파일을.. 2021. 5. 20.
맥 MySQL 설치 방법 + 설치 후 주요 파일 위치 mac에서 MySQL 설치하는 방법은 간단하다. homebrew를 활용해서 설치하면 아주 간단하게 설치가 가능하다. homebrew란 mac용 패키지 관리 어플리케이션을 말한다. 터미널에서 명령어를 이용해서 필요한 프로그램을 설치, 삭제, 관리를 쉽게 할 수 있게 도와준다. mac을 사용하는 경우 거의 개발자들이 필수로 사용하게 되는 어플리케이션이다. homebrew 설치는 mac 터미널에서 아래와 같이 입력하면 된다. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"​ homebrew를 설치 완료 했다면, mac의 터미널에서 설치하기 위해서는 아래 명령어를 사용하면 된다. 최신 버전.. 2021. 5. 18.
알고는 써야지! 기본 spring annotation 종류 스프링을 사용하다 보면 메서드나 클래스, 변수 위에 @ 이 붙은 것들을 보게 된다. 안쓰면 제대로 안 돌아가서 다른 사람 코드를 보고 처음에는 쓰게 되는데 막상 이 annotation이 뭔지 물어보면 대답을 명확하게 하지 못하는 경우도 간혹 있다. 쓸꺼면 알고 쓰자! 사실 면접 볼때 나의 github 소스코드를 보다가 면접관이 이 어노테이션은 뭔지 알고 있냐고 물어본적이 있어서 대충 대답한 기억이 있어서 정리해봤다. 코드를 쓰려면 제대로 알고 써야 저런 당황스러운 경험을 하지 않을 수 있다. 나만 모를수도 있지만 이런게 있구나 하면서 한번 정리하면 좋을 것 같다. 기본중의 기본 어노테이션만 정리해봤다. annotation이란? 사전적 의미로, 주석이라는 뜻이다. @를 이용하여 자바코드에 추가하여 의미를 .. 2021. 5. 17.
Model 2 방식과 스프링 MVC 모델 2 방식은 흔히 MVC 구조를 응용한 방식이라고 하는데, 핵심은 '화면과 데이터 처리를 분리해서 재사용이 가능하도록 하는 구조' 모델 2 패턴의 이해 모델(Model) : 데이터 혹은 데이터를 처리하는 영역 뷰(View) : 결과 화면을 만들어 내는데 사용하는 자원 컨트롤러(Controller) : 웹의 요청(request)을 처리하는 존재로 뷰와 모델 사이의 중간 통신 역할 모델2 에서 모든 요청은 기본적으로 컨트롤러를 호출 / 컨트롤러는 자신을 호출하는 특정한 URI 경로를 가지고 있으며, 과거에는 주로 호출 시에 마지막 확장자를 *.do 등을 이용하는 방식을 많이 사용 모델 2 방식의 장점 개발자와 웹 퍼블리셔의 영역을 분리 가능 컨트롤러의 URL을 통해서 뷰를 제어하기 때문에 뷰의 교체나 변.. 2021. 5. 14.
스프링 MVC의 주요 구성 요소 스프링 MVC의 주요 구성 요소 DispatcherServlet 클라이언트의 요청을 전달받아 컨트롤러에게 클라이언트의 요청을 전달하고 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답을 생성하도록 한다. front controller와 동일 클라이언트의 요청을 중앙에서 처리하는 스프링 MVC의 핵심 구성요소 web.xml에 한 개 이상의 DispatcherServlet을 설정 각 DispatcherServlet은 한 개의 WebApplicationContext를 갖게 된다. HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다. 컨트롤러(Controller) 클라이언트의 요청을 처리한 뒤, 그 그결과를 DispatcherServlet에게 알려준다. 스트럿츠의.. 2021. 5. 14.
SSH 기초 개념정리 SSH 들어도 보고 써봤어도 제대로 모르겠다. 나만 그런지 모르겠지만 개발하면서 사용하고 있지만 설명하라면 할 수 없는 느낌이랄까. 이번에 ssh 접속 오류로 인스턴스 접속을 못하는 상황이 발생하면서 생각난 김에 정리해 보려고 한다. ssh란? Secure Shell 의 약자로 원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜 중 하나이다. 컴퓨터와 다른 컴퓨터가 공공 네트워크를 통해 로그인하거나 원격시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해주는 응용프로그램, 프로토콜을 말한다. 암호화 기법을 사용하여 보안에 좋으며, 기본적으로는 22번 포트를 사용한다. 위키백과에 위와 같이 쓰여 있지만 뭔가 쉽게 이해가 안간다. 간단하게 말해서 다른 컴퓨터나 서버에 원격 접속 .. 2021. 5. 13.
JAVA 8 새로 추가된 기능! 개발자 면접 대비 개발자 면접에서 물어보는 질문 중 하나인 자바 8의 특징 대해 정리를 해보려고 한다. 예전 개발자 면접에서 면접관이 이렇게 물어본 적이 있다. 면접 질문 1) java 버전은 어떤걸 사용했는지? 면접 질문 2) java 8에서 새롭게 추가된 것들이 있는데, 어떤것들이 있는지 아는가? 해당 질문에 대해 명확히 대답할 수 있도록 JAVA 8 새로운 기능, 변경 사항을 제대로 알아보자. JAVA 8은 2014년에 출시 되었다. 출시 된지 오래 되었지만 자바 8의 새로운 기능을 물어보는 이유는 현재도 많이 쓰는 기능이기도 하고, 해당 기능을 지금도 제대로 알지 못하는 개발자도 있고, 실무에서는 자바 8을 사용하는 경우가 많기 때문이라 생각된다. 람다식 (Lambda) 람다는 익명 함수로, 이름과 식별자가 없는 .. 2021. 5. 12.
Spring에서 JDBC가 아닌 MyBatis를 사용하는 이유 스프링을 활용하여 개발 시 직접 connection을 만들어서 자바 코드에 데이터베이스에 접근하는 형태보다는 Mybatis를 활용하는 경우가 많다. 스프링 + MyBatis + RDBMS의 조합으로 많이 사용한다. 마이바티스를 활용하면 개발이 더 편리 하기 때문이라고 한다. 그 이유에 대해 상세히 알아보자. 코드 효율성 향상 JDBC는 try~catch 처리, Statement, ResultSet의 데이터 처리를 하기 위해 많은 코드를 써야 한다. MyBatis는 SQL Mapper 라이브러리로, 스프링과 함께 사용하는 경우 반복 처리 코드 없이 간결하게 사용이 가능하다. 스프링과 마이바티스를 연계하는 라이브러리를 이용 시 직접 SQL문 호출 없이 자동화 처리가 가능하다. 하여 코드의 양이 줄어든다. S.. 2019. 7. 13.
자료구조와 알고리즘을 공부해야 하는 이유 + 코딩 테스트 사이트 공유 요즘에는 비전공자이지만 개발을 공부해서 직업으로 삼는 사람이 늘어나고 있다. 개발 분야가 핫하기도 하고, 점점 더 많은 인력이 필요한 분야이다 보니 전공자 뿐만 아니라 비전공자들도 많이 도전을 하고 있는 추세로 보인다. 나도 비전공자로 개발에 대한 전체적인 내용을 공부하고 취업한 케이스이다 보니, 개발자 면접을 볼때 부족한 부분을 느끼기도 하고 주변 개발자 분들이 조언을 해주는 경우가 많았다. 3년차 정도 되거나 고급기술을 사용해야 하는 경우에 부족함을 느끼고, 개발 이론 관련해서 다시 공부를 하게 된다는 이야기를 말이다. 하여 컴퓨터 공학에 관심을 가지게 되고, 결국 다시 공부하게 되는 분야에서 대표적인 것이 자료구조와 알고리즘이다. 개발자 초기에는 기획에 맞게 데이터를 나오게 하는 것 만으로도 대단하.. 2019. 7. 12.
반응형