본문 바로가기

BE

[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.. 더보기
[Appium] 앱 테스트 자동화 (1) Appium 설치 목차 1. Appium이란? 2. Appium 설치하기 3. adb 설치하기 📌 1. Appium이란 Appium이란, Native, Hybrid, 모바일 웹을 테스팅하는 앱 UI 테스팅 프레임워크입니다. (링크: https://appium.io/) Android/iOS 앱 뿐만아니라 Windows 앱 기반으로도 테스트할 수 있게 제공하고 있습니다. 개발자인 우리는 JAVA/Python/PHP 등의 언어로 앱 동작을 제어하는 자동화 스크립트를 작성할 수 있는데요. 자동화 스크립트 작성은 크롬 등 웹 어플리케이션 기반 테스트 자동화 드라이버인 Selenium Webdriver를 활용하여 작성합니다. 위의 언어들로 테스트 스크립트를 작성하면 Appium은 Android/iOS 에 우리가 정의한 동작을 실행시.. 더보기
[Python] 리스트(List) 정리 안녕하세요. 오늘은 파이썬 자료형 중 하나인 리스트 자료형에 대해 정리하겠습니다. 파이썬의 리스트는 입력 순서가 유지되며, 내부적으로 동적 배열로 구현되어 있어 삽입/삭제가 가능한 자료구조입니다. list 는 C++의 vector, Java의 ArrayList와 비슷한데요. 연속된 구조로 저장되는 배열, 다양한 타입을 연결하여 배치하는 연결 리스트의 장점을 갖추고 있어 String, Int, Boolean 등 다양한 자료 데이터형을 저장할 수 있습니다. 목차 1. 리스트란? 2. 리스트의 주요 연산 📌 1. 리스트란? 리스트란, 선형 자료구조로서 입력순서가 유지되며 내부적으로 동적 삽입 삭제가 가능한(push/pop) 자료구조입니다. Last in Last Out인 스택의 자료구조와 유사하며, 삽입/삭제.. 더보기