Programming 9

이펙티브 자바 - 1, 2장 개요, 객체 생성과 파괴

개요 매주 이펙티브 자바를 한 단원씩 공부하기로 했다. 자바 개발자로 일하면서 애매하게 알고넘어갔던 부분과 심화적으로 알고있어야 할 내용을 배우기위해서 이펙티브 자바를 선택했다. 어려운 책이라고 후기들을 봤고, 선배 개발자와 얘기해도 어려운 책이니 잘 안읽힌다고 들었지만, 어렵다고 미루기보단 지금부터 봐 둬야 나중에 다시보는 일이 있어도 보기 수월할 것 같았다. 그러므로 시작해보겠다. 1장 : 들어가기 자바 입문자가 아닌 자바에 익숙한사람을 위한 책이라고 설명하며 시작한다. 나 역시 자바 개발자라고 하지만 입문자나 마찬가지라고 생각한다. 문법만 안다고 전부를 아는건 아니며, 알고 쓰는것과 모르고 쓰는것은 다르다는 것을 알고 있기 때문이다. 이 책에선 성능적인 부분도 있지만 그보다 명확하고 정확하고 유용하..

Programming/JAVA 2022.02.20

자료구조 - 큐(queue), 간단한 코드로 파악하기

개념 큐(queue), 역시 스택과 비슷하게 데이터를 일시적으로 쌓아놓기 위한 자료구조입니다. 다만 차이점은 가장 먼저 넣은 데이터를 가장 먼저 꺼내는 선입선출(FIFO, First In First Out) 구조입니다. 실 생활에서 예를 들자면 마트의 대기열이나, 은행 창구에서 차례를 기다리는 순서라고 이해하면 편합니다. enqueue : 인큐 라고 불리며, 큐에 데이터를 삽입하는 작업을 뜻합니다. dequeue : 디큐 라고 불리며, 인큐의 반대로 데이터를 꺼내는 작업을 뜻합니다. front : 프런트는 데이터를 꺼내는 out 쪽을 뜻합니다. rear : 리어는 데이터를 넣는 쪽을 뜻하며 back이라고도 불립니다. 큐를 구현하기 쉬운방법은 역시 배열입니다. public class IntQueue { p..

프로그래머스 - 완주하지 못한 선수(JAVA)

문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예participantcompletionreturn ["leo", "kiki",..

스프링부트 기초 - 1. 스프링부트 개요 & 프로젝트 설치 및 설정

개요 안녕하세요. 이번에 스프링부트를 공부하면서 블로그에 정리하면 좋을것같아 찾아왔습니다. 기존에 공부할땐 노션에 정리했는데 노션이 좋긴하지만, 블로그랑 성격이 조금 달라서 포트폴리오처럼 남기고, 다른사람에게 피드백? 이나 보여줄 수 있는 부분이 블로그가 더 클것같아서 블로그로 정리해보도록 하겠습니다. 설치 먼저 스프링부트를 설치 하기전, IDE를 정해야하는데요 기존의 프로젝트에서 저는 Eclipse, STS 를 활용했지만, 이번에는 IntelliJ 무료 버전인 CE버전을 활용하여 해보겠습니다. IDE의 설치는 인텔리제이의 회사 젯브레인 홈페이지에서 가능하며, 저는 MAC 환경이기에 링크가 mac 입니다. https://www.jetbrains.com/ko-kr/idea/download/#section=..

Programming/Spring 2021.12.02

스프링 이미지게시판 - div 태그 contentEditable 기능

이번 포스팅은 간단하게 내가 지금 어떤 고민을 하는지 기록해두기 위해서다. 지금 나는 학원 파이널 프로젝트로 Spring framework 를 통한 웹사이트를 개발하고 있는데, 한 사이트에 이벤트(행사) 페이지를 맡아서 진행중이다. 당연히 이벤트 페이지같은 경우 이미지의 비중이 굉장히 큰만큼, 스타벅스같은 사이트처럼 이미지 위주의 페이지로 꾸며보고 싶었고, 본문내용과 이미지를 함께 쓸 수 있도록 구현해야했다. 이미지 없이 text 로만 CRUD 기능은 구현했지만, 이미지를 활용하기 위해 textarea 를 다른 방향으로 바꿔서 에디터형식? 블로그? 처럼 이미지와 텍스트를 함께 표시하고 싶었다. 그러다 찾은데 태그에 contentEditable 이라는 기능이다. 이 기능이 참 재밌는게 이 기능하나로 블로그..

Programming/Spring 2021.10.25

알고리즘의 대한 공부

알고리즘 (Algorithm) 간단히 말해 문제를 해결하기 위한 과정. 혹은 명확하게 정의되고 순서가 있는 유한한 갯수의 규칙으로 이루어진 집합이라 한다. 많은 사람들이 코딩테스트 == 알고리즘이라고 하지만, 이는 반만 맞는 말이라고 생각한다.. 결국 코딩테스트도 문제를 해결하는 법을 아는지 테스트하는 일련의 과정일 뿐이고, 알고리즘이라는 카테고리에 소속되어 있는 것. 알고리즘을 처음 접하는 나같은 사람들이 개념정리를 하고 갔으면 하는 생각으로 글을 써보겠다. 비전공자 입장에서 알고리즘은 정말 알 수 없는 미지의 세계 그 자체다.. 어렴풋이 듣기로 알고리즘이 문제푸는방법쯤으로 알고 있던 나랑 아마 비슷할거라고 생각한다. 알고리즘의 프로그래밍으로 문제를 해결하는 방법에는 여러가지가 있지만, 입문자, 신입,..

JAVA - 연산자 (Operator)

연산자는 말 그대로 연산 ( 계산 ) 을 위해 사용하는 것을 의미합니다. 연산자를 배우기 이전에 출력메소드를 통해 값을 출력하는 것을 알아보겠습니다. 출력문 System.out.print(); = ()안에 변수,문자,숫자,논리 값을 모니터에 출력해주는 메소드 System.out.println(); = 위에 print문과 동일하지만 출력 후 자동으로 출력창에 줄바꿈을 해주는 메소드 System.out.printf(); = 정해져있는 형식에 맞춰서 그 형식에 맞는 값(변수)를 줄바꿈하지 않고 출력 이번엔 입력문 Scanner 클래스를 통해 값을 입력하는것을 알아보겠습니다. 입력문 스캐너는 java.util.Scanner 클래스이기 때문에 소스 맨 앞에 import를 통해 호출해와야합니다. import jav..

Programming/JAVA 2021.07.30

JAVA - 상수와 형변환

상수 ( Constant ) 란? 자바에서 상수와 수학에서의 상수는 조금은 다른의미를 갖고 있습니다. 먼저 수학에서 상수는 변하지 않는 값을 의미합니다. 그럼 자바에서는 어떠한 뜻을 가질까요? 큰 의미에서는 비슷하지만 자바에선 한번만 저장할 수 있는 값(메모리)을 의미합니다. 수학의 뜻과 비슷하게 초기화한 후에는 값을 변경할 수 없는 값이니 같은뜻이라 봐도 틀린말은 아니겠죠? 선언과 초기화 방법 // 선언 방법 final '자료형' '변수명'; // 초기화 방법 // 1. 선언과 동시에 초기화 final int num = 100; // 2.선언 후 초기화 final int num; num = 100; 이처럼 변수의 선언과 초기화와 동일한 방식이지만, 앞에 final 로 이 변수의 값이 상수이다 라고 선언..

Programming/JAVA 2021.07.21

JAVA - 기본문법

문자와 문자열, 숫자 프로그래밍언어마다 차이는 존재하지만, 비슷한 맥락이 바로 문법입니다. 그중 문자와 문자열 그리고 숫자에 대해 알려드리겠습니다. 프로그래밍을 처음 접하는 분들께는 문자와 문자열이 크게 차이나지않은 비슷한 개념으로 보일 수 있습니다. 하지만 프로그래머의 관점에서 이는 분명히 다른개념이며 구분할 필요가 있었습니다. 문자 : 한 글자를 뜻하게 되며, 영어 대,소문자 한글등에서 예를들면 '가', 'a', 'B' 등 입니다. 문자열 : 문장을 뜻하며 "안녕하세요", "hello world", "APPLE" 등 단어, 혹은 문장등을 뜻합니다. 숫자 : 단어 그대로 숫자를 뜻하며 문자와 문자열과 구분하는 이유는 숫자를 문자와 문자열로 표현해야할때가 있습니다. 예) '잠실역8번출구' 의 숫자 8은 ..

Programming/JAVA 2021.07.17