본문 바로가기

전체 글132

R 공부 1편 자료를 벡터로 입력하기 위해서 사용하는 함수 : c() 평균 구하는 함수 : mean() 표준편차 구하는 함수 : sd() 상관관계 구하는 함수 : cor() 두 데이터의 관련성을 그림으로 나타내기 위한 함수 : plot() cor()과 plot()은 비교하려는 두대상의 데이터 수가 맞지않으면 오류발생 #Input data age Knowledge -> Wisdom -> Nirvana 정보와 지식의 차이는 지식은 살아있는 정보 즉, 삶에 적용되는 정보를 말한다. 기존 데이터와 빅데이터의 차이는 3V로 설명가능 빅데이터는 용량(Volume), 속도(Velocity), 다양성(Variety) 이 있는 자료를 말한다. 빅데이터 분석과정 : 빅데이터 수집관리 -> 데이터 분석 -> 의사결정 단계 데이터마이닝 대.. 2020. 8. 4.
Spring Boot / 트랜잭션 롤백하기 // 둘중에 하나라도 실패하면 rollback 하기 @Transactional(rollbackFor = Exception.class) public void updateAndDelete(Post post) { try { mRepo.update(post); mRepo.delete(post.getId()); System.out.println("DB 정상"); } catch (Exception e) { System.out.println("DB 오류"); throw new RuntimeException(e); } } 2020. 8. 3.
Spring / Security란? 스프링 시큐리티란? 스프링 시큐리티는 인증, 인가, 일반적인 공격에 대한 보호를 제공하는 프레임워크이다. 시큐리티는 인증과 인가를 분리하여 아키텍쳐가 설계되어 있는데, 해당 포스트에서는 아키텍쳐와 인증 프로세스 그리고 인증 프로세스에서 사용되는 주요 컴포넌트에 대해 살펴보겠다. 인증 인증이란 컴퓨터 시스템 사용자의 신원(주소, 신분 등)같은 주장을 증명하는 행위이다. 사람 또는 사물의 신원을 나타내는 행위와 대조적으로 인증은 그 신원을 검증하는 프로세스이다. 즉, 인증이란 사용자 이름, 사용자 아이디, 사용자 패스워드 등과 같은 자격을 증명하는 것을 검사하여 신분을 검증하는 것이다. 그렇다면 어떻게 스프링에서 시큐리티가 동작하는지 다음과 같은 시나리오와 함께 살펴보자. -시나리오- 사용자 이름과 암호를 .. 2020. 8. 2.
Spring Legacy / JDBC 연결 테스트하기 프로젝트에 있어서 단위테스트는 항상 중요하다. 이번 포스트에서는 JDBC를 셋팅하고 연결이 가능한지 확인해보는 테스트를 진행한다. 코드 예시는 다음과 같다. package org.zerock.persistence; import static org.junit.Assert.fail; import java.sql.Connection; import java.sql.DriverManager; import org.junit.Test; import lombok.extern.log4j.Log4j; @Log4j public class JDBCTests { static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (Exception e) { e.pr.. 2020. 7. 30.
Spring Legacy / 단위 테스트하는 방법 개발자들은 프로젝트에서 수많은 테스트를 거쳐 서비스를 릴리즈하게된다. 그만큼 테스트는 프로젝트 진행에 있어서 중요한 요소이며, 이러한 테스트를 수행하는 방법을 알아야 질 높은 프로젝트를 완성할 수 있다. 그럼 테스트 코드는 어떻게 짜여질까? 아래 예제를 통해 살펴보자. 다음 코드는 'src/test/java' 폴더에 작성된 단위 테스트 목적의 자바파일이다. 보통 테스트 자바파일은 'src/test/java' 디렉토리에 셋팅되며 아래와 같은 코드구성으로 테스트가 이루어진다. package org.zerock.sample; import static org.junit.Assert.assertNotNull; import org.junit.Test; import org.junit.runner.RunWith; im.. 2020. 7. 29.
Android / Retrofit2 사용하기 https://codinginflow.com/tutorials/android/retrofit/part-1-simple-get-request Part 1 - Simple GET Request - Coding in Flow In this video series we will learn how to use Retrofit, which is a type-safe HTTP client for Android and Java. Retrofit allows easy communication with a web service by abstracting the HTTP API into a Java interface. In part 1 we will set up Retrofit in a n codinginflow.com h.. 2020. 7. 29.
MySQL / 테이블 값 깨지는 문제 해결방법 필자는 MySQL이 오라클에 인수되기 전의 최신버전인 5.7과 인수되고 나서의 8버전을 모두 사용해 보았으며 인수되기전 5.7버전에서 한글이 깨지고 8버전에서는 한글이 정상적으로 보여지는 이슈를 접했다. 그러면 5.7버전에서 어떻게하면 한글이 깨지는 현상을 해결할 수 있을까? MySQL5.7이하의 버전을 사용하다보면 다음과 같이 한글이 깨지는 현상을 보게된다. 지금부터 해결방법을 살펴보자. 1. 우선 'my.ini' 파일을 찾아서 관리자권한으로 연다. 2. 파일을 관리자 권한으로 열었다면 아래와 같이 코드를 작성해준다. 3. 한글설정이 되었는지 확인하기 위해 스키마에 아래 쿼리를 작성 show variables like 'c%'; 4. 위와 같이 쿼리를 작성하고 실행해보면 다음과 같은 화면이 출력되며, .. 2020. 7. 28.
Spring Legacy / DI설계 방법 글을 읽기에 앞서 DI의 개념이 아직 잘 잡히지 않았다면 아래 링크 참조. https://swdevelopment.tistory.com/272 Spring / IoC와 DI *loC란? IoC는 Inversion of Control의 약자로 프레임워크의 핵심 요소이며 스프링에도 예외없이 존재하는 개념이다. IoC는 해석하면 제어의 역전 또는 제어의 반전이며 이것은 메소드나 객체의 호출작�� swdevelopment.tistory.com !이 글은 Lombok과 spring-test 라이브러리를 활용하여 DI를 테스트한다. DI를 하기전 먼저해야할 것이있다. 바로 DI 설정이다. 스프링은 클래스에서 객체를 생성하고 객체들의 의존성에 대한 처리 작업까지 내부에서 모든 것이 처리된다. 스프링에서 관리되는 객체.. 2020. 7. 24.
Spring Legacy / 자바파일로 스프링 관련 설정하기 STS툴에서 레거시 프로젝트의 경우 XML기반으로 스프링관련 설정을 하도록 구성되어있으며, 스프링 3버전 이후부터는 XML뿐만이 아닌 자바클래스 파일을 이용하는 스프링 설정을 지원한다. 자바로 스프링 설정을한다라.. 어떻게 할 수 있을까. 지금부터 알아보자. 자바로 스프링을 설정하는 과정은 크게 다음과 같다. web.xml 파일 삭제 및 스프링 관련 파일 삭제 pom.xml 수정 및 스프링 버전 변경 Java 설정 관련 패키지 생성 1. 자바로 설정하기 위해 우선 기본적으로 레거시 프로젝트가 가지고 있는 설정관련 XML파일을 삭제 삭제해야할 XML파일은 web.xml, servlet-context.xml, root-context.xml 이다. servlet-context.xml과 root-context... 2020. 7. 23.
Android / 간단한 계산기 앱 만들기 간단한 계산기 앱을 만들어보자. 이번 포스팅 또한 심심풀이로 업로드한것이니 가볍게 보시길 바랍니다. -계산기 앱 예제- -코드- 필자는 eval()함수를 활용하여 문자열을 숫자로 파싱해서 계산기를 만들었다. 안드로이드는 eval()메서드를 지원하지않으므로 다음과 같이 gradle에 라이브러리를 추가하였다. implementation 'io.apisense:rhino-android:1.1.1' activity_main.xml MainActivity.java package com.example.test; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android... 2020. 7. 22.
Android / 버튼 클릭시 숫자가 증감하는 로직 버튼 클릭시 숫자가 증감하는 간단한 로직을 구현해보자. 심심풀이로 올리는 포스팅이니 가볍게 보시길 바란다. -예제- -코드- activity_main.xml MainActivity.java package com.example.test; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ProgressBar; import android.widget.TextView; public class MainActivity extends AppCompat.. 2020. 7. 22.
Android/ ProgressBar ProgressBar란? ProgressBar는 작업의 진행 정도를 표시하거나 작업이 진행 중임을 사용자에게 알려주는 수단 중 하나다. 또한, 어떤 일의 진행 상태를 중간 중간 보여줄 수 있는 가장 좋은 방법 중 하나이다. ProgressBar는 대표적으로 두 가지 형태가 존재한다. 속성 설명 막대모양 작업의 진행 정도를 알려주는 막대모양으로 표시한다. 원 모양 작업이 진행 중임을 알려준다. 원 모양으로 된 ProgressBar가 반복적으로 표시된다. XML 레이아웃에 ProgressBar를 추가할 때는 태그가 사용되며, ProgressBar가 갖는 값의 최대 범위는 max속성으로 설정하고 현재 값은 progree속성으로 설정한다. 예를 들자면, 값의 최대 범위가 100이고 max값을 100으로 설정했을.. 2020. 7. 22.
Android/ AppCompat위젯으로 버튼 생성하고 클릭 이벤트 주기 AppCompat 위젯을 사용하여 버튼을 생성하고 클릭시 색상이 바뀌는 이벤트를 어떻게 주는지 아래 예제를 통해 살펴보자. -AppCompatButton 사용 예제- -코드- activity_main.xml white_rounded_button.xml 2020. 7. 22.
Android / ScrollView ScrollView는 인스타그램이나 페이스북과 같은 SNS앱에서 많이 접할 수 있다. 예제를 통해 ScrollView를 사용해보자. 예제는 다음과 같다. activity_main.xml layout_content.xml ScrollView는 include를 활용해 뷰를 구성하고 ScrollView 사용시 주의할 점은 ScrollView는 내부에 레이아웃을 하나밖에 두지못한다는 것이다. 그러니 뎁스 또한 당연 허용되지 않는다. 2020. 7. 21.
Android / 액션바 삭제하기 안드로이드 개발을 위와 같은 에뮬레이터로 할 때 액션바를 직접 커스터마이징하고자 하면 액션바를 없애야한다. 어떻게하면 액션바를 없앨 수 있을까? 방법은 간단하다. 기존의 'DarkActionBar'를 'NoActionBar'로 바꿔주면 해결! -결과- 2020. 7. 21.