분류 전체보기
잘하고 싶지만 멀리 봐야 한다
잘하고 싶지만 멀리 봐야 한다
2023.01.28잘하고 싶은 마음은 있는데 뒤처진다고 생각을 하니 뭔가 더 급해지기도 하고, 그러다 보면 어느새 내가 뭘 하고 있는지 정리가 잘 안 돼서 모든 걸 놓아버리는 경우가 종종 있다. 가끔이야 그럴 순 있지만 많아질수록 별로 좋다. 일을 할 때, 공부를 할 때 감정을 최대한 배제하고 뭔가를 하기는 참으로 쉽지 않다. 그만큼 많은 인내가 필요하며 지금 당장 뭐가 잘 안 된다고 연연해서는 더더욱 안 된다. 하루가 길게 느껴지는가 하면 어느 순간 짧게 느껴지기도 한다. 시간은 마치 일기예보처럼 변덕스럽다. 사실 시간이 변덕스러운 게 아니라 마음이 변덕스러운 것일지도 모른다. 보통 5분이라고 하면 짧게 느껴질지 모르지만 권투선수에게는 5분도 긴 시간이다. 시간이 상대적인 이유는 스스로가 처한 상황과 마음가짐에 달려있다..
00. 자바 포스팅을 시작합니다
00. 자바 포스팅을 시작합니다
2023.01.26안녕하세요 codesche입니다. 오늘부터 한 달간 자바 프로그래밍을 주제로 포스팅을 진행할 예정입니다. 자바를 공부해왔지만 여전히 기초가 부족하다는 느낌이 들어 다시 한 번 정리하는 차원에서 글을 쓰기로 결심했습니다. 자바는 현재 우리나라에서 가장 많이 사용하는 언어로서 어떻게 보면 거의 모든 곳에서 자바를 쓴다고 해도 과언이 아닌데요. 하지만 자바는 쉬우면서도 생각보다 쉽지 않은 언어라고 생각합니다. 특히 스프링을 할 때 많이 느끼는데 클래스와 상속, 오버라이딩, 제네릭, 배열 등의 개념이 익숙하지 않아 꽤나 애를 먹었던 적이 많았었습니다. 이번 기회를 통해 저뿐만 아니라 글을 보시는 모든 분들도 개념정리가 잘 되었으면 하는 바람입니다. 일단 참고자료는 자바의 정석이 적당할 것 같아 자바의 정석을 참..
돈 때문에 개발하는가, 개발이 좋아서 개발하는가
돈 때문에 개발하는가, 개발이 좋아서 개발하는가
2023.01.24언제부터 시작됐는지 모를 개발자 열풍이 지금까지도 이어지고 있다. 정시에서 가장 인기있는 학과가 컴퓨터공학과라고 한다. 개발만 하면 잘 먹고 잘 살 수 있다는 믿음에서 비롯된 것일까? 우후죽순 생겨나는 코딩학원들은 개발자라는 직업이 전도유망하다는 사실을 보여주는 사례가 아닐까 싶다. 실제로 개발로 먹고 살기는 쉽지 않은데 말이다. 초봉이 높다는 이유로 단지 미래가 밝다는 이유만으로 개발자라는 길을 걸어가겠다고 한다면 개발자로 먹고 살기는 쉽지 않을 것이다. 눈에 보이는 결과만 바라보고 갔다가 망연자실하는 사람들이 얼마나 많은지를 아는 게 우선이지 않을까 싶다. 나는 무엇보다 개발자라는 직종의 취업을 유도하는 환경과 분위기가 다소 위험하다는 생각이 든다. 여기저기서 개발자를 하겠다고 지원을 하지만 그렇다고..
지나간 1월, 다가오는 2월
지나간 1월, 다가오는 2월
2023.01.23방황하지 않기 위해, 잠시동안 깨어있기 위해 남기는 글. 자기만족이 불러 일으키는 자만심과 앞으로 나아가야 할 방향을 위한 고민. 그래도 여기까지 올 수 있었음에 감사한다. 아무것도 하지 못했던 지난 날들, 늘 부족하다고, 안 된다고만 느껴졌던 것들이 이제는 조금씩 할 수 있는 것으로 바뀔 때의 그 심정은 정말이지 느껴본 사람만이 알 것이다. 난 뭔가를 할 때 잘한다는 생각을 해본적이 별로 없다. 사회생활을 할 때도 마찬가지였다. 내가 개발한 프로그램을 사용자 분들이 만족스러워하실 때 기분은 좋았지만 그렇다고 내가 특출난 사람이라는 생각은 한 번도 해본적이 없다. 당연히 해야 할 일이라고 느껴서일까? 어쨌든 나는 개발이나 업무가 끝나면 마음 편하게 귀가하며 느끼는 편안함 그리고 잠을 잘 때의 아늑함이 나..
정리를 하기 위해 하는 일과 공부
정리를 하기 위해 하는 일과 공부
2023.01.21나는 왜 사는가 하고 누가 물어본다면 지금은 확실하게 말할 수 있다. 정리하기 위해서라고. 하루하루 살다보니 그동안 내가 경험하고 몸담아왔던 곳들을 돌이켜봤을 때 생각외로 정리된 곳보다 그렇지 않은 곳이 많다는 것을 느꼈다. 간략하게 정리해보자면 이렇다. 문서로는 정리가 되어 있는데 현실이 그렇지 못한 경우 겉모습은 정리가 되어 있는데 내면이 그렇지 못한 경우 내실은 충분히 있는데 겉모습이 그렇지 못한 경우 항상 들어온 말들 중에 '공부를 잘해야 좋은 대학에 간다', '좋은 직장에 가려면 스펙을 잘 갖춰야 한다' 등이 있었다. 근데 문득 그런 생각이 들었다. 공부를 잘한다는 의미가 정리를 잘한다는 의미와 같은 걸까... 좋은 직장을 다니면 정리가 잘 된 인생을 사는 걸까 하고 말이다. 만약에 자기가 좋아..
감정의 골짜기에서 다시 올라가는 빛이란 산의 꼭대기
감정의 골짜기에서 다시 올라가는 빛이란 산의 꼭대기
2023.01.211월도 어느새 절반이나 지났다. 벌써 설이라니... 시간은 금새 2월로 향해 달리고 있다. 현재 내 인생의 위치는 어디쯤에 있는 것일까? 느리게 가더라도, 빠르게 가더라도 그 방향이 제대로 되어야 할 터인데 아직은 잘 모르겠다. 그래도 한 가지 확신하는 건 날마다 30분~1시간씩 꾸준히 뭔가 하다 보면 반드시 변화가 온다는 것이다. 나는 개발자 커리어를 좀 더 이어나가기 위해 뭐든지 해보려고 노력 중이다. 명절이든, 공휴일이든, 평일이든, 주말이든 코드와 친숙해지기 위해 계속 코딩하고 또 코딩한다. 사실 코딩을 잘하는 건 별 의미가 없다. 개발을 잘해야 개발의 수명을 오래 이어나갈 수 있으니 말이다. 주변을 보면 개발을 잘하는 사람들이 너무 많다. 가끔 다른 블로그나 깃헙을 보면 정말이지 숨이 턱 막힐 ..
깨끗한 코드, 의미있는 이름(chap01 & chap02)
깨끗한 코드, 의미있는 이름(chap01 & chap02)
2023.01.12○ 목차 1. 나쁜 코드 2. 클린 코드 3. 의미 있는 이름 짓기 4. Google Java Naming Guide 1. 나쁜 코드 성능이 나쁜 코드 : 불필요한 연산이 들어가서 개선의 여지가 있는 코드 의미가 모호한 코드 : 이해하기 어려운 코드, 네이밍과 그 내용이 다른 코드 중복된 코드 : 비슷한 내용인데 중복되는 코드들은 버그를 낳음 1.1 나쁜 코드가 나쁜 이유 1. 깨진 유리창의 법칙 나쁜 코드는 깨진 유리창처럼 계속 나쁜 코드가 만들어지도록 한다 2. 생산성 저하 나쁜 코드는 팀 생산성을 저하시킨다 기술부채를 만들어 수정을 더 어렵게 한다 3. 새로운 시스템을 만들어야 한다 현재 시스템을 유지보수하며 대체할 새로운 시스템 개발은 현실적으로 매우 어렵다 레거시 코드를 고치기란 여간 어려운 게..
[자료구조]Map 인터페이스
[자료구조]Map 인터페이스
2023.01.11보통 객체들을 저장하는데 key를 붙여서 저장하는 방식을 Map 인터페이스라고 합니다. Map 객체는 (key, value)의 쌍으로 저장합니다. 이러한 (key, value) 쌍인 객체는 Map.Entry 타입의 객체이며 key와 value는 모두 객체로 이루어져 있습니다. key는 중복이 불가능 하지만 value는 중복저장이 가능합니다. 이렇게 Map은 데이터를 찾아갈 수 있는 key와 실제 데이터인 value를 저장한다고 해서 Dictionary라고도 부릅니다. Map 인터페이스를 구현한 구현 클래스는 HashMap, Hashtable, TreeMap, LinkedHashMap 등이 있습니다. HashMap은 key의 순서를 알 수 없고, TreeMap은 key의 순서가 크기 순이며 LinkedHa..
[자료구조]문자열
[자료구조]문자열
2023.01.02안녕하세요. codesche입니다. 오늘은 알고리즘 문제에서 빈번하게 활용되는 문자열 로직을 정리해보고자 합니다. 사실 알고리즘 문제 풀다보면 풀리는 문제보다 안 풀리는 문제가 훨씬 많은데 그 과정에서 개념활용에 익숙지 않아서 고민하는 경우가 상당히 많이 발생합니다. 30분, 1시간을 생각해도 많게는 2~3시간을 머리 싸매고 고민하지만 문제가 쉽게 풀리지 않는 경우가 있는데, 조금이라도 고민하는 시간을 줄여보고자 문제풀이에 필요한 개념과 소스 로직들을 정리해봤습니다. 필요하실 때 참고하시면 좋을 듯 합니다. 1. 문자열 1) equals() 문자열의 내용을 비교합니다. 2) equalsIgnoreCase 문자열의 특징을 무시하고 비교하는 것. 소문자, 대문자를 동일하게 인식합니다. 3) compareTo..
2022. 12. 30 - 새해 마지막 전날
2022. 12. 30 - 새해 마지막 전날
2022.12.30이제 새해도 얼마 안 남았다. 일만 계속하다가 2022년의 마지막도 작년처럼 계속 일만 하고 있을 줄 알았는데 여유롭게 글을 쓸 줄이야... 정말이지 미래는 알 수 없다. 뜨거웠던 여름, 전국을 돌아다니며 프로그램 개발과 납품에 열을 올렸던 순간들이 순식간에 지나가버렸다. 내가 몸담았던 의료분야는 개발 분야 중에서 정말 바쁜 곳 중에 하나다. 특히 의료재단 같은 경우 새벽에 검사를 많이 하기 때문에 늦은 밤까지 대기하고 있어야 하는경우가 정말 많았다. 그 외 여러 종합병원, 대형병원들 역시나 쉽지 않았는데 병원 특성상 24시간 운영인지라 새벽에도 전화를 받는 경우가 부지기수였다. 개인시간 거의 없이 개발에만 몰두해왔던 시간들이 어떻게 보면 지금의 나를 있게 해준 원동력이 아닐까? 요즘 들어 느끼지만 여유..
[자료구조]버블 정렬
[자료구조]버블 정렬
2022.12.30많이 알려져있고 또 많이 접하기도 했지만 막상 정리가 잘 안 된 터라 정렬에 대한 개념정리 차원에서 정렬 알고리즘에 대한 글을 포스팅하기로 했습니다. 버블 정렬을 시작으로 선택, 삽입, 퀵, 병합, 기수 정렬 내용을 차례대로 정리할 계획입니다. 우선 오늘은 정렬 중에 가장 쉽게 생각할 수 있는 알고리즘인 버블 정렬에 대해 알아보겠습니다. 버블 정렬이란 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식입니다. 왜 버블 정렬인지 궁금해서 찾아봤는데 정렬 과정에서 원소의 이동이 마치 거품이 수면위로 떠오르는 것 같다고 하여 붙여진 이름이라고 합니다. 버블 정렬은 데이터를 '비교'하면서 찾기에 '비교 정렬'이라고도 볼 수 있습니다. 정렬의 대상이 되는 데이터 이외에 추가적인 공간을 필요로..
[프로그래머스]모의고사
[프로그래머스]모의고사
2022.12.30https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 긴 설명 없이 바로 풀이로 들어가겠습니다. *풀이 일단 수포자들의 정답 찍는 방식을 각각 배열로 만들어 줍니다. 각각의 배열과 answers 배열을 비교하여 정답을 카운트시켜 줄 변수를 선언해줍니다. 3개의 배열이니 3개의 변수가 필요하겠죠? 그 다음 반복문을 돌려서 각각의 수포자 정답이 일치하는지를 확인해줍니다. 반복문을 거친 후에 answer1, answer2, answer3의 값중에서 최대값..