본문 바로가기

전체 글

(89)
프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유 1. 백엔드 개발자 (Backend Developer)- 역할과 작업백엔드 개발자는 웹사이트나 애플리케이션의 서버 측면을 담당함. 이들은 데이터베이스, 서버, API, 핵심 애플리케이션 로직 등을 구현하고, 프론트엔드와 데이터를 주고받는 시스템을 만듬. 주로 데이터 관리, 서버 사이드 로직, API 개발 등을 포함하며, 이 모든 것이 사용자에게 직접 보이지는 않지만 사용자의 요청을 처리하고 데이터를 전송하는 중요한 기능을 함.- 사용하는 기술프로그래밍 언어: Python, Java, Ruby, PHP, Node.js 등프레임워크: Django, Spring, Ruby on Rails, Express.js 등데이터베이스 기술: MySQL, PostgreSQL, MongoDB, Oracle 등 - 적성과 특..
스프링 도입배경 - 객체지향적 코드개선 원본 코드 현상황 분석 : 결제서비스(Class1)가 결제를 위해 머니어뎁터(Class2)를 호출해서 사용하는 단순한 형태였는데,  PayMethod라는 parameter 값에 따라서  Class2(머니어뎁터)를 쓰던지 Class3(카드어뎁터)를 쓰던지 분기하여야함. 문제분석 :  if-else문으로 분기하여, Class2(머니어뎁터)와 Class3(카드어뎁터)와 하위 로직들을 끌어와서 사용시 class1 내의 코드 복잡성이 증가함. 추후 분기의 종류 및 class1와 외부클래스 사용점이 늘어나면 외부클래스 종속적인 코드 증가함. 해결책 : DIP원칙과 Interface의 다형성 기능을 활용하여 Class1과 Class2,Class3 사이를 interface를 거치어 사용되도록 하면 (class1이 in..
비전공자 개발자 전직준비 (3) 프로젝트 준비하기 프로젝트의 목적  프로젝트 실행은 무엇을 목적으로 하는 것인가를 명심해야한다. 우리는 창업을 위해서, 전에 없던 서비스를 만드려는 것이 아니다. 서비스 구축을 통해서 백엔드 개발자로서 스킬을 보여주고 싶은 것이다. 그러므로, 프로젝트의 방향성은 참신성이 아니라 개발스킬을 잘 보여주는 것이 되어야한다. 차라리, 무난한 주제로 자신이 가고싶은 도메인의 서비스를 만들고, 해당 회사에 갔을 때 당면할 문제들을 미리 경험해보고  스킬을 배워두는 게 좋을 것이다.  지양해야할 방향사업성공 가능성이 높더라도 backend가 딱히 skill이 필요없는 프로젝트타인이 사업의 당위성을 이해할 수 없는 프로젝트용두사미로 실제로는 알맹이가 없는 프로젝트 지향해야할 프로젝트 진행방향프로젝트의 방향성은 가능한 심플하게 세우고 구..
Java programming OOP 연습케이스(1) 리팩터링을 통해서 객체지향적 사고관을 기르는 연습을 해보자.import org.w3c.dom.ls.LSOutput;import java.time.LocalDate;import java.time.DayOfWeek;import java.lang.reflect.Array;import java.util.Scanner;public class Calendar { public static void main(String[] args) { // receive user input and set default value Scanner input = new Scanner(System.in); System.out.println("달력의 년도를 입력해 주세요. (y..
스프링 도입의 핵심 - Application Context, DI/IOC/Bean 스프링의 핵심(1) : DI(Dependency Injection) 의존관계주입의존성: 한 클래스가 기능을 수행하기 위해 다른 클래스의 메서드나 데이터에 의존하는 관계를 말합니다.주입: 의존성이 필요한 객체를 직접 만들지 않고, 생성자, 메소드, 또는 프로퍼티를 통해 외부에서 받는 과정을 말합니다.  A가 B에 직접적으로 의존한다면 A는 B의 변화에따라 덩달아 변하게된다. 그런 의존성을 A 혹은 B 클래스 코드 내에서 직접 연결시키지않고, Configuration이라는 외부에서 실제구현 객체와 Spring Context객체를 만들어서 연결성(의존성)을 지정(주입)해준다.    자바개발이 찰흙으로 물건을 만드는 거라면, 스프링은 Container라는 판 위에서 레고로 조립을 하는 것과 같다. bean이라는..
Spring 도입배경 - 객체지향 디자인원리 자바에서 스프링 프레임워크로자바프로그래밍 : 개발자가 직접 모든 객체와 동작을 수행시킴 ; 모든 코드 환경을 개발자가 통제하는 환경프레임워크 : 외부에서 개발된 코드와 규칙에 따라서 개발자의 코드를 로드하는 방식으로, 개발자가 요소를 모두 통제하지 못함.웹프레임워크 : 동적인 웹서비스를 개발하기 위해서 데이터베이스 연동, 템플릿 형태의 표준, 세선관리를 위한 프로그램.My code call library but framework call my code. 외부의 코드재사용이라는 관점에서 라이브러리와 공통점이 있으나, 개발자가 따라야하는 더 정형적인 규칙이 정해져있다는 측면에서 라이브러리와 다르다. OOP 객체지향 프로그래밍객체지향프로그래밍 : 명령어의 목록이 아니라 독립적인 객체의 집합으로 보는 관점.  ..
Java 범용 library java.math packageBigInteger, BigDecimal::  Represents arbitrary-precision integers with no upper or lower boundsConstructorBigInteger(String val/integer): Creates a BigInteger instance from a string representation of an integer.BigDecimal(String val/double val): Creates a BigDecimal instance from a double value.Operations:add(BigInteger val), subtract(BigInteger val), multiply(BigInteger val), d..
데이터베이스 환경구축 (Maria DB 초기설정, JDBC사용,JPA설정) 데이터베이스왜 사용하는가?데이터는 엑셀이나 파일시스템으로도 관리할 수 있지만, 1. 데이터의 동시성(웹의 특성상 복수의 사용자가 데이터를 저장하는 일이 발생)으로 인한 보안문제나 데이터 안정성의 문제도 있을 것임. 2. 데이터의 종속성(응용프로그램에 따라서 데이터가 변해야함), 3. 데이터의 중복성(동일한 데이터가 다른 위치의 여러파일에 존재하여 공간낭비가능)의 단점으로 데이터베이스의 도입이 필요하다.데이터베이스는 파일시스템과 같이 물리적 위치에 따라 참조하는 것이 아니라 데이터 값을 사용하여 조건을 제시하면 이에 해당하는 데이터를 찾을 수있다데이터베이스관리시스템DBMS : 데이터베이스를 운영하고 관리하는 소프트웨어정형화된 데이터를 관리하는 RDBMS, 비정형 데이터를 관리하는 NoSQL이 존재한다.오라..