프로그래밍 기초

·코딩딩/Spring
Tomcat web server나 web application server프로그램을 설치한 컴퓨터는 웹에서 서비스를 제공할 수 있는 웹서버가 된다. web application 파일은 웹에서 실행되는 프로그램을 의미 ⇒ html, jsp, php, js, css was(wab application server)에서 인식 기본위치에서 index로 시작하는 파일을 찾아서 실행 : 어떤 was를 쓰냐에 따라 기본으로 인식하는 위치는 달라진다. was 종류에는 JEUS, JBOSS, Weblogic, websphere, tomcat 등 tomcat이 인식하는 기본 위치는 C:\Program Files (x86)\Apache Software Foundation\Tomcat 9.0\webapps 기본을 인식하는 폴..
·코딩딩/SQL
SQL SQL 작동 순서 from → where → group → by → having → select → order by select 에 컬럼을 넣으려면 group by 로 컬럼을 선언해줘야 사용 가능하다 where절과 having절은 모두 조건을 주지만 where절은 group by와 전혀 상관없는 조건을 줄 때 사용하고 having절은 group by로 묶인 컬럼들에 대한 조건을 선언해준다. 예제 1 --1. 부서별 인원수를 출력하세요 --[출력형식] --부서명 인원수 --[출처] 조인연습 - hr계정|작성자 heaves1 SELECT d.DEPARTMENT_NAME , COUNT(e.EMPLOYEE_ID) FROM DEPARTMENTS d , EMPLOYEES e WHERE d.DEPARTMENT..
·코딩딩/Java
다형성 추상클래스 package oop.polymorphism; /* * 추상클래스 * => 상위클래스의 역할을 하는 클래스 * => 객체를 생성할 수 없는 클래스(미완성된 클래스) * => 내용이 구현되어 있지 않은 메소드를 포함하고 있는 클래스를 추상 클래스라 한다. * ----------------------- * 추상 메소드(body가 없는 메소드) * 1) 추상 메소드를 선언하는 방법 * 접근제어자 abstract 리턴타입 메소드명 (매개변수1, 매개변수2....); * 2) 추상클래스의 특징 * - 추상메소드가 하나라도 정의되어 있으면 추상클래스가 된다. 추상클래스는 선언부에 abstract을 추가한다. * - 추상 클래스에는 추상 메소드와 일반 메소드를 모두 정의할 수 있다. * - 추상 클..
·코딩딩/Java
스프링 컨테이너 생성 스프링 컨테이너가 생성되는 과정을 알아보자. // 스프링 컨테이너에 AppConfig를 등록한다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext를 스프링 컨테이너라 한다. ApplicationContext는 인터페이스이고 해당 코드를 보면 알 수 있듯 다형성이 적용되어 있다. 스프링 컨테이너는 XML을 기반으로 만들 수 있고, 에노테이션 기반의 자바 설정 클래스로도 만들 수 있다. (요즘엔 XML은 잘 사용하지 않는 추세다) 직전에 AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만..
·코딩딩/Java
for문같은 반복문 안에서 메소드를 호출하면 호출 될때마다 힙 메모리에 해당 메소드가 호출되어 메모리를 더 많이 쓰게된다. 계속 바뀌는 값이면 어쩔 수 없지만 바뀌지 않는 고정된 값이라면 반복문에 들어가기 전 변수에 해당 값을 할당한 뒤 반복문을 돌려주는게 더 효율적이다. Instance member stack과 heap 영역에 할당된다. 인스턴스 멤버란 객체를 생성한 후 사용할 수 있는 필드와 메소드를 말한다. 클래스 멤버는 객체에 소속된 멤버이기 때문에 객체 없이는 사용할 수 없다. 객체가 가지고 있는 고유의 값이라고 생각하면 될 것 같다. Static member method 영역에 할당된다. static(정적) 멤버란 클래스의 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 ..
·코딩딩/Java
Getter (게터)와 Setter (세터): Getter와 Setter는 객체의 상태에 접근하고 조작하기 위한 메서드. 주로 private한 멤버 변수의 값을 가져오거나 설정하는 용도로 사용된다. Getter는 해당 변수의 값을 반환하고, Setter는 해당 변수의 값을 설정한다. 이를 통해 클래스 내부의 멤버 변수를 캡슐화하여 외부에서 직접 접근하는 것을 방지하고, 객체의 상태를 제어할 수 있는 인터페이스를 제공한다. 일반적으로 Getter와 Setter 메서드는 public으로 정의됨. Getter: 멤버 변수의 값을 읽어오는 메서드. 예를 들어, getName() 메서드는 이름 멤버 변수의 값을 반환. Setter: 멤버 변수의 값을 설정하는 메서드 예를 들어, setName(String name..
·코딩딩/Spring
객체 지향 원리 적용새로운 할인 정책 개발새로운 할인 정책을 확장해보자새로운 할인 정책 적용과 문제점테스트가 끝난 새로운 할인 정책을 적용해보자.AppConfigAppConfig 리펙터링SpringAppConfig에 Spring 적용하기객체 지향 원리 적용 새로운 할인 정책 개발 새로운 할인 정책을 확장해보자 참고: 애자일 소프트웨어 개발 선언 https://agilemanifesto.org/iso/ko/manifesto.html기획자의 요구사항 변동으로 인해 FixDiscountPolicy를 RateDiscountPolicy로 변경할것이다.RateDiscountPolicy 추가 회원의 등급을 조회하고 VIP일때 할인 금액이였던 1000원을 return했던 FixdiscountPolicy와 다르게 pri..
·코딩딩/Java
클래스 클래스의 구성요소 객체 객체란 물리적으로 존재하나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있으면서 식별이 가능한 것을 말한다. 예를들어 물리적으로 존재하는 자동차, 자전거, 책, 사람과 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있다. 객체는 속성과 동작으로 구성되어 있다. 자동차는 색깔, 모델명 등의 속성과 달린다, 멈춘다 등의 동작이 있다. 자바는 이 속성과 동작을 각각 필드와 메소드라고 부른다. 필드 (멤버 변수) 클래스 내부에 선언되는 데이터의 저장 공간으로, 객체의 상태를 나타내는 속성을 의미합니다. 필드는 클래스의 특성이나 속성을 나타내는 변수들로, 객체마다 고유한 값을 가질 수 있다. 필드는 클래스 내에서 선언되고, 객체가 생성될 때마다 해당 객체에 대한..
·코딩딩/Spring
SOLID SRP OCP ★ LSP ISP DIP 스프링 SOLID 클린코드로 유명한 로버트 마틴이 좋은 객체 지향 설계의 5가지 원칙을 정리 SRP 단일 책임 원칙 (single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이라는 것은 모호하다. 클 수도 있고, 작을 수도 있다. 문맥과 상황에 따라 다르다. 중요한 기준은 변경이다. 변경이 있을 때 파급효과가 적으면 단일 책임 원칙을 잘 따른 것 ex) UI의 변경, 객체의 생성과 사용을 분리 OCP ★ 개방 - 폐쇠 원칙 (Open/closed principle) 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. 확장을 하려면 당연히 기존 코드를 변경해야 하지만 이는 다형성으로 극..
·코딩딩/Spring
예제 만들기 비즈니스 요구사항과 설계 회원 회원을 가입하고 조회할 수 있다. 회원은 일반과 VIP 두 가지 등급이 있다. 회원 데이터는 자체 DB를 구축할 수 있고, 외부 시스템과 연동할 수 있다. (미확정) 주문과 할인 정책 회원은 상품을 주문할 수 있다. 회원 등급에 따라 할인 정책을 적용할 수 있다. 할인 정책은 모든 VIP는 1000원을 할인해주는 고정 금액 할인을 적용해달라. (나중에 변경 될 수 있다.) 할인 정책은 변경 가능성이 높다. 회사의 기본 할인 정책을 아직 정하지 못했고, 오픈 직전까지 고민을미루고 싶다. 최악의 경우 할인을 적용하지 않을 수 도 있다. (미확정) 요구 사항을 보면 회원 데이터와 할인정책같이 수정될 수 있는 부분은 객체 지향 설계 방법으로 대비할 수 있다. 우선 스프..
전낙타
'프로그래밍 기초' 태그의 글 목록 (2 Page)