신입 개발자로서의 3개월, 앞으로의 목표
·
일상
지난주, 드디어 저의 수습 기간이 끝났습니다.처음 업무를 시작했을 때 '무엇을 어떻게 해야 할지' 막막했던 3주차가 엊그제 같은데,벌써 3개월 차가 되어 수습 기간을 조용히 마무리했습니다.수습 기간이 지나며 비로소 진정한 일원이 된 듯한 뜻깊은 시간이었습니다.3개월간의 성장 과정3개월이란 시간 동안 가장 많은 노력을 기울인 부분은 회사의 공통 코드와 선임 개발자분들의 MVC 패턴을 분석하며 코드 작성 방식을 이해하는 것이었습니다. 아직 3개월 차라 부족한 점이 많지만, 이제는 선임분들이 어떤 방식으로 구현하고자 했는지 느낌을 이해하고, 때로는 '내가 이런 방식을 시도해봐도 괜찮지 않을까?' 하는 생각도 할 수 있게 되었습니다.물론 제 의견을 조심스럽게 제시할 뿐, 회사의 개발 방식과 원칙을 존중하며 모두..
-
·
일상
때로는 내 삶이 비포장 도로를 달리는 것과 같다고 느껴왔다.누구나 인생에 험준함이 있겠지만, 나의 경우는 그 험준함이 오히려 자유로움에 가까웠던 것 같다.어린 시절, 나는 또래보다 특출나게 잘하는 것들이 있었음에도 그것들이 너무나 먼 꿈처럼 느껴졌다.주변에서는 "미래가 유망하지 않다"며 포기하라는 말을 들었던 그 꿈들이, 어느새 모두가 선망하는 직업이 되어있었다.뒤돌아보니 내 발자국은 무질서했다."나는 무엇을 위해, 어떤 꿈을 향해 걸어왔던 걸까?" 싶을 정도로 방향 없이 걸어왔다.그럼에도 그 시간들은 나름대로 자랑스럽고 감사한 순간들이었다.하지만 진짜 내 꿈을 향해 걸으려 하니 막막함이 밀려왔다."이 길이 정말 맞는 걸까?""너무 늦은 건 아닐까?""시간이 얼마나 더 필요할까?"이런 의문들과 함께 막연..
신입 개발자 3주 차 : 풀스택 개발자로 살아남기
·
일상
오늘로 풀스택 웹앱 개발자로 첫 직장에 입사한 지 정확히 3주가 됐습니다.입사 전만 해도 직장인으로 살아가는 나의 모습이 그려지지 않았는데,어느덧 매일 아침 회사에 출근하고, 코드를 짜고, 코드리뷰를 하는 일상이 자연스러워지고 있어요.저처럼 취업 준비를 하면서 막막해하거나,이제 막 개발자의 길을 걷기로 마음먹고 고민하는 분들에게 조금이라도 현실적인 도움이 되고 싶어서,그리고 지금 제 마음 가짐을 잊지 않기 위해서.그래서 제가 어떤 준비를 해서 입사를 하게 됐는지,짧지만 지금까지 회사 생활을 하면서 어떤 일을 겪고 느꼈는지,솔직한 이야기를 써보려고 합니다.💻 3주 동안 내가 한 일1️⃣ 개발 환경 셋업과 코드에 적응하기입사 첫 날, OJT를 간단하게 마치고 , 제 자리의 회사 컴퓨터를 켜고 개발 환경 구..
[정보처리기사 실기] C언어 - (2)
·
📜 Certs
1. 숫자 변환 함수 (atoi, atof, strtol 등)정보처리기사 실기에서 문자열과 숫자 변환 문제도 출제될 가능성C 언어에서는 문자열을 숫자로 변환할 때 atoi, atof, strtol, strtod 등의 함수를 사용합니다. atoi() - 문자열 → 정수 변환#include #include int main() { char str[] = "1234"; int num = atoi(str); // "1234" → 1234로 변환 printf("변환된 정수: %d\n", num); // 출력: 변환된 정수: 1234 return 0;}📝 주의점atoi()는 문자열에 숫자가 아닌 문자가 포함되면 예측할 수 없는 값을 반환할 수 있음."123abc" 같은 문자열을 변환하면 12..
[정보처리기사 실기] C언어 - (1)
·
📜 Certs
최근에는 JSP 구조적 이해와 MVC2 패턴에 대해 집중적으로 공부하면서, Servlet과 JSP 컨트롤러·뷰 간의 유기적인 통신 흐름을 파악하고, DAO 구현(Impl)과 Service 계층에서의 역할 분담이 어떻게 진행되는지 꼼꼼히 살펴보고 있습니다.또한 JavaScript와 jQuery의 문법을 보다 탄탄히 다져서 실무에 적용할 수 있는 커스텀 함수(common)를 구상하고 로직을 체화하기 위해 노력 중입니다.반가운 소식으로 지난달 첫째 주에 시행된 정보처리기사 필기시험을 꽤 높은 점수로 합격했고, 그 기세를 이어 실기시험도 한 번에 붙겠다는 목표로 열심히 달리고 있습니다.1. C언어란?C언어는 시스템 프로그래밍부터 임베디드, 각종 응용 소프트웨어 개발에 이르기까지 폭넓게 사용되는 프로그래밍 언어입..
JavaScript & jQuery 기본 개념 정리
·
📖/JavaScript
1. JavaScript 기초 개념1-1. JavaScript 변수 선언 방식JavaScript에서 변수를 선언하는 방식은 var, let, const가 있습니다.1. var함수 스코프(function scope)를 가짐재선언 및 재할당 가능Hoisting(호이스팅) 발생 (변수 선언이 코드의 최상단으로 끌어올려짐)var name = "Alice";console.log(name);2. let블록 스코프(block scope)를 가짐재선언 불가능하지만 재할당 가능let age = 25;age = 26; // 가능console.log(age);3. const블록 스코프(block scope)를 가짐재선언 및 재할당 불가능const pi = 3.14;// pi = 3.1415; // 오류 발생console...
JSP Cookie , Session , Error page , Action Tag - 입사 전 리마인드
·
🗄️ Backend/JSP
JSP 쿠키, 세션, 에러 페이지, 액션 태그 정리JSP 개발을 하면서 자주 사용하게 될 쿠키(Cookie)와 세션(Session),  에러 페이지 처리, JSP 액션 태그에 대해 살펴보겠습니다.페이지 전환 시 많이 사용되는 forward와 sendRedirect의 차이점도 함께 정리해보았습니다.현업에서 JSP/Servlet 기반으로 개발할 때 한 번씩 꼭 짚고 넘어가야 할 부분들이니, 참고하면 좋을 것 같습니다.쿠키(Cookie) - Local1) 개요HTTP 프로토콜은 요청-응답이 끝나면 웹 브라우저와의 연결을 끊습니다.이렇게 상태가 유지되지 않는(Stateless) 특성을 보완하기 위해, 쿠키라는 방식을 사용합니다.쿠키는 서버에서 생성되지만, 데이터는 클라이언트(Local) 측에 저장됩니다.서버는 ..
JSP와 Servlet 기초 정리 - 입사 전 리마인드
·
🗄️ Backend/JSP
이번 포스팅에서는 실무에서 JSP와 Servlet을 바로 사용해야 하는 상황을 대비해, JSP/Servlet의 기본적인 사용법과 핵심 개념을 정리해보려 합니다. JSPJSP 특징동적 웹 어플리케이션 컴포넌트로, 자바 코드를 사용 가능파일 확장자는 .jsp클라이언트의 요청에 따라 동적으로 작동 후, 최종 응답은 HTML 코드로 전달JSP는 웹서버(WAS)에서 자동으로 Servlet으로 변환되어 동작MVC 패턴에서 View 역할로 주로 사용JSP 태그의 개념 이해Servlet은 java 언어를 이용하여 문서를 작성하고, PrintWriter 객체를 통해 HTML 코드를 삽입JSP는 이와 반대로 HTML 코드 안에 java 코드를 삽입하여 동적 문서를 작성HTML 코드 안에 자바 코드를 삽입하기 위해서는 JS..
[트러블슈팅] Nginx 설정 문제 및 Redirect URI Mismatch 에러 해결
·
🗄️ Backend/Security
🚨 1. 에러 메시지 및 문제 상황1️⃣ Nginx 설정 문제 (nginx: configuration file test failed)에러 메시지nginx: configuration file /etc/nginx/nginx.conf test failed문제 상황nginx -t 명령어 실행 시 설정 파일이 올바르게 로드되지 않음.nginx.conf 또는 sites-available/hjwjo.com 설정 파일의 문제일 가능성 높음.SSL 인증서 접근 권한 문제로 인해 fullchain.pem 또는 privkey.pem을 읽지 못함.2️⃣ Redirect URI Mismatch (KOE303)에러 메시지{ "error": "invalid_grant", "error_description": "Redi..
GCP를 활용한 PostgreSQL/ SQL Server 구축
·
🗄️ Backend/GCP
https://dev.hjwjo.com/49 GCP에서 Oracle DB 생성 및 연결 가이드이 가이드는 Google Cloud Platform(GCP)에서 Oracle 11g Database를 설정하고 외부에서 연결하는 과정을 정리한 문서입니다.특히 발생했던 문제들과 해결 방법을 포함하여, GCP 환경에서 Oracle Database를 처음dev.hjwjo.com 1. GCP의 300$ 크레딧 활용GCP는 새로운 사용자를 대상으로 90일간 300$ 크레딧을 제공합니다. 단기적인 프로젝트나 테스트 환경을 구축할 때 비용적으로 매우 유리합니다. AWS RDS 프리티어도 있지만, 여러 개의 RDS를 운영하기엔 비용 부담이 커지므로 GCP를 활용해 효율적으로 데이터베이스를 구축할 수 있습니다.GCP는 Comp..
Spring과 Spring Boot의 차이점
·
🗄️ Backend/Spring
이번 포스팅에서는 Spring과 Spring Boot의 차이점에 대해 정리해보려고 합니다.1. Spring Framework란Spring Framework는 오랜 기간 Java 개발자들 사이에서 사랑받아온 경량 프레임워크입니다. 주요 특징은 다음과 같습니다.DI(Dependency Injection)와 IoC(Inversion of Control):객체 간의 의존 관계를 직접 생성하지 않고 스프링 컨테이너가 관리해드림으로써 코드 결합도를 낮추고 테스트를 용이하게 합니다.AOP(Aspect Oriented Programming):로깅, 트랜잭션 관리, 보안과 같은 공통 기능을 분리하여 모듈화할 수 있도록 지원합니다.유연한 설정:XML, 어노테이션, 자바 기반 설정 등 다양한 설정 방식을 제공하지만, 이로 ..
🧪백준 4948 - 베르트랑 공준
·
📊 Algorithm
Tier : Silver 2자연수 n이 주어지면, n보다 큰 소수 중에서 2n 이하에 있는 "소수의 개수"를 구하는 문제입니다.입력값 최대 n은 123,456, 2n은 최대 246,9122부터 246,912까지의 소수를 모두 찾으면 됩니다.https://dev.hjwjo.com/48 🧪백준 1929 - 소수 구하기https://www.acmicpc.net/problem/1929백준(BOJ) 사이트에 들어간 게 정말 오랜만이네요.최근에 바쁘다는 핑계로 알고리즘 문제 풀이에서 많이 멀어졌던 것 같습니다.이제부터라도 하루에 한 문제씩 가벼운dev.hjwjo.com에라토스테네스의 체(Sieve of Eratosthenes)를 이용해 쉽게(?) 문제를 풀 수 있습니다.import java.io.*;import ..
🧪백준 4195 - 친구 네트워크
·
📊 Algorithm
Tier : Gold 2각 친구를 정수 인덱스로 매핑한 후, find 메서드로 루트를 찾고, union 메서드로 두 네트워크를 합칩니다.경로 압축과 union - size 기법을 사용하여 효율적으로 구현하였습니다.import java.io.*;import java.util.*;public class Main { // 각 친구 네트워크의 대표와 모임의 크기를 저장하는 배열 static int[] parent, size; // find : 친구 네트워크의 대표(그룹의 시작)를 찾는 함수 static int find(int a) { // a가 자기 자신이면 대표이므로 a를 반환 // 아니면, a의 대표를 찾아서 a의 부모로 저장하고 반환 ret..
[정보처리기사] 정보 시스템 구축 관리 - 5과목 정리
·
📜 Certs/정보처리기사
1. 소프트웨어 개발 방법론 활용1) 소프트웨어 개발 방법론(1) 구조적 방법론정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화처리 중심의 방법론60년대까지 가장 많이 적용된 방법론목적: 쉬운 이해, 검증 가능한 프로그램 코드 생성분할과 정복 기법 사용(2) 정보공학 방법론계획, 분석, 설계, 구축에 정형화된 기법을 상호 연관성 있게 통합·적용자료 중심대규모 정보 시스템 구축에 적합(3) 컴포넌트 기반 방법론이미 만들어진 컴포넌트를 조합하여 하나의 애플리케이션 완성컴포넌트 재사용으로 유지보수 비용 최소화, 생산성과 품질 향상새 기능 추가가 간단하므로 확장성 보장절차개발 준비분석설계구현테스트전개인도2) 소프트웨어 재사용정의이미 개발된 소프트웨어를 다른 소프트웨어 개발에 사용하는 것품질과 생산성을..
데이터베이스 키 정리 : 기본키/슈퍼키/후보키/외래키
·
🗄️ Backend/SQL
데이터베이스에서 자주 등장하는 키(Key)들의 개념을 보다 쉽게 설명하기 위해 작성한 글입니다.슈퍼키, 후보키, 기본키, 대체키, 외래키, 복합키의 정의와 예시를 간단히 살펴볼 예정이니, DB 입문자분들께 도움이 되었으면 좋겠습니다.유일성과 최소성키(Key)를 이해하기 전에 반드시 알아야 할 두 가지 중요한 성질이 있습니다.유일성(Unique): 하나의 키 값으로 튜플(레코드)을 유일하게 식별할 수 있어야 함.즉, 키 값이 중복되지 않아야 합니다.최소성(Minimality): 키를 구성하는 속성 중에 꼭 필요한 최소한의 속성만으로 구성되어 있어야 함.즉, 불필요한 속성을 제거해도 여전히 유일성이 보장된다면, 그 불필요한 속성은 키 구성에서 빼야 합니다.예시로 ‘학생 구별자’가 [학생번호, 이름, 성별] ..