본문 바로가기

전체 글

[JAVA] 자바 상속 기본 및 활용 목차 1. 상속 2. 오버라이딩 3. 객체 생성 방법 (자기자신, 형변환) 📌1. 상속(Inheritance) 객체지향 프로그래밍에서 '상속' 관계란 부모 클래스와 자식 클래스가 주체가 되어 자식클래스가 부모의 변수 및 메서드를 상속받아 활용할 수 있는 것을 말합니다. 즉, 부모가 자녀에게 변수/메서드 상속해주게 되면 자식은 부모가 가지고 있는 상태/동작을 모두 활용할 수 있습니다. 자바에서 extends 를 활용해 상속받는데, 자녀 클래스는 extends 키워드를 통해 부모 클래스를 상속받습니다. 부모 클래스는 상위 클래스(슈퍼 클래스, super class) 라고 하며, 자식 클래스는 하위 클래스(서브 클래스, sub class) 라고 합니다. ⚡ 클래스 생성자 호출 순서 (부모 -> 자식) 클래스의.. 더보기
[JAVA] 객체 지향 프로그래밍 기본 및 활용 (SOLID) 목차 1. 객체지향프로그래밍이란? 2. 객체지향 프로그래밍의 유연성 3. 클래스/객체/인스턴스란? 4. 객체 지향 프로그래밍 : 역할과 구현을 분리 (SOC) 5. 좋은 객체 지향 설계의 5가지 원칙 (SOLID) 📌 1. 객체지향프로그래밍이란? 자바는 객체 지향 프로그래밍 언어입니다. 객체 지향 프로그래밍은 기존의 절차 지향 프로그래밍에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것입니다. 객체란, 물리적/추상적으로 독립된 단위로서 고유의 속성을 가지고 있고 식별 가능한 것을 말합니다. 우리 현실에 있는 차, 냉장고, 고객, 배송 등을 객체라고 부릅니다. 객체지향프로그래밍의 대표적 특징에는 상속,캡슐화(은닉),다형성,추상화가 있습니다. 📌 2. 객체지향 프로그래밍의 유연.. 더보기
[JAVA] StringBuffer, StringBuilder 클래스 정리 목차 1. StringBuilder, StringBuffer 사용하는 이유 2. StringBuilder 3. StringBuffer 4. 공통/차이점 📌 1. StringBuilder, StringBuffer 사용하는 이유 ⚡ 기존 String 클래스 한계 String클래스는 한번 생성되면 문자열이 변경되지 않으므로 불변(immutable)한 성질을 가지고 있습니다. 따라서 기존 문자열에 새로운 문자열을 추가하고자 하는 경우 메모리에서 문자열이 추가되는 것이 아니라, 새로운 메모리가 할당되어 문자열이 생성됩니다. 따라서 문자열의 변경이 빈번한 경우 StringBuilder와 StringBuffer클래스를 활용해야 합니다. 아래와 같이 String sb = "testStr";로 선언하고 sb = sb.c.. 더보기
[JAVA] 기본 자료형 및 문자열 안녕하세요. 오늘은 JAVA의 기본 자료형에 대해 알려드리려 합니다. 자료형이란, 프로그래밍에 사용되어 숫자, 문자열 등 변수 형태로 활용되는 모든 것을 의미합니다. JAVA의 자료형에는 기본 자료형, 참조 자료형(클래스)가 있는데요. 기본 자료형에는 숫자형(정수/실수)형, 문자형, 논리형 자료형이 있으며 참조 자료형에는 문자열 등이 있습니다. 기본 자료형의 경우 new 키워드로 객체를 생성하는 것이 불가합니다. 목차 1. 정수형/실수형 2. 논리형 3. 문자형 4. 문자열 📌1. 숫자형(정수형/실수형) JAVA 자료형의 숫자형에는 정수형과 실수형이 있습니다. 대표적인 정수형은 int,long 이 있으며 실수형은 float, double 이 있습니다. 주로 실수형(float,double)은 소수를 나타냅.. 더보기
[Spring] AOP 개념 및 구현 목차 1. AOP란? 2. AOP 장점 3. Advice / PointCut / JoinPoint 4. 동작 방식 5. 구현 방식 📌AOP란? AOP(Aspect Oriented Programming) 란 '관점 지향 프로그래밍'으로서 개발 로직과 비즈니스 로직을 분리하여 관리하는 Spring 개념입니다. 즉, 공통 관심 사항과 핵심 관심 사항(코어 코드)을 분리하여 반복된 작업을 줄이는 Spring 개념입니다. 쉽게 설명하자면, 100개 함수가 처리해야 할 공통 기능 코드(예: 로깅) 들을 분리해 별도 Bean으로 관리하는 컨셉입니다. 📌AOP 장점 1) 높은 재사용성 : 중복된 코드를 최대한 제외하여 기능이 필요할 때만 호출하여 쓰기 때문에 재사용성이 높습니다. 2) 깔끔한 코드 : 공통관심사항을 별.. 더보기
[django] 장고 ORM 데이터 CRUD(Create,Read,Update,Delete) 목차 1. ORM이란? 2. 장고(django)의 DB CRUD - 데이터 추가 - 데이터 조회 - 데이터 검색 - 데이터 수정 - 데이터 삭제 3. OR/AND/GROUP BY/ORDER BY 📌1. ORM이란? ORM(Object-Relational Mapping)이란 객체와 관계형 DB를 매핑해주는 것을 말합니다. 즉 내가 선언한 장고 모델 (예: Board) 객체와 DB의 테이블(예: board )을 매핑해주는 것입니다. DB내 CRUD를 하기위해서는 SQL문을 사용해 직접 Create,Read,Update,Delete 하는 것이 일반적입니다. 그러나 데이터 CRUD 시 일일히 SQL문을 작성하게 되면 코드가 복잡해집니다. 이러한 문제점을 개선하고 코드를 편리하게 사용하기 위해 ORM 을 활용하고.. 더보기
[Python] Google Gmail SMTP 로 이메일 보내기 안녕하세요 :) 오늘은 파이썬으로 이메일을 보내는 방법에 대해 포스팅하겠습니다. 파이썬 코드로 이메일을 보내기 위해서는 SMTP(Simple Mail Transfer Protocol) 라는 메일 프로토콜을 사용해야 하는데요. 본 글에서는 Gmail SMTP 를 사용할 예정입니다. (SMTP 서버에는 Gmail, Outlook 등이 있습니다) 📌 1. SMTP란? 먼저 SMTP(Simple Mail Transfer Protocol) 라는 개념에 대해 자세히 설명해 드리겠습니다. SMTP란? 메일을 전송할때 사용되는 프로토콜입니다. 개인적으로 SMTP 서버를 구축해 메일을 전송할 수 있지만 우리는 개인이므로 오픈된 SMTP 서버인 Gmail/Outlook 등을 활용해 메일을 전송합니다. 📌 2. 메일 전송 .. 더보기
[Appium] 앱 테스트 자동화 (2) 테스트 스크립트 구현 목차 1. Appium 기동 2. 디바이스 설정 3. Python 스크립트를 통한 앱 동작 📌 1. Appium 기동 앱피움을 활용해 단말을 작동시키기 위해서는 Selenium Web driver 을 활용합니다. Selenium Web driver는 웹 테스팅 도구로 많이 사용하는데요. 크롬 등 환경에서 웹 어플리케이션을 테스팅할 때 사용할 뿐만 아니라 앱 테스팅에도 사용하는 크롤링 드라이버입니다. 특히 아래에 구현된 것(driver.find_element_by_id(input).click())과 같이 driver를 활용해 클릭/입력 등 이벤트 등을 일으키고자 사용합니다. 추가로 Senium Webdriver를 활용해 Remote 하는 주소인 http://127.0.0.1:4723/wd/hub의 경우 A.. 더보기